小编Mac*_*ack的帖子

通过 Seatrow 选择连续座位

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表所以它不是那么重要。

我感谢你在这方面给我的任何帮助。

售票处

座位

sql-server subquery

4
推荐指数
1
解决办法
710
查看次数

标签 统计

sql-server ×1

subquery ×1