SELECT TOP N seats.*, eventtickets.eticketprice from seats
INNER JOIN eventtickets ON eventtickets.etickettype = seats.seattype
WHERE ((Seats.seatType ='BOXSEAT')
AND seatID not in (select seatID from ticketsales WHERE eventID=6))
ORDER BY convert (int, seats.seatSection), seats.seatrow ASC
Run Code Online (Sandbox Code Playgroud)
我上面的查询生成了 N 个座位中的最佳可用数量,但它会填满一个部分,然后将该订单的其余部分放在下一个部分。我需要它来找到一个新的部分,所有 N 个座位都可用。如果座位在TicketSales桌子上,则不可用。如果salecategory为 Null,则表示票证尚未售出/阻止/保留,因此可用。
它显然限制在 6 个座位上,但我确实有一个部分,一排有 30 多个座位。
Section 1:
Row 1: 1-2-3
Row 2: 4-5-6
Section 2:
Row 1: 1-2-3
Row 2: 4-5-6
Run Code Online (Sandbox Code Playgroud)
等等。
我没办法。连续盯着这个看了两天,我的脑子里一片空白。我在 SQL 方面非常薄弱,令人惊讶的是我远远超过了这一点。我想我已经接近了,但没有辣酱玉米饼馅。
请参阅随附的 2 个主表的图片。我只需要seatpricefromeventtickets表所以它不是那么重要。
我感谢你在这方面给我的任何帮助。