You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

大厅预订系统预订模块求助:实现大厅预订状态查询

大厅预订系统SQL查询实现求助

我正在开发一套大厅预订系统,目前在预订模块的开发上遇到了困难。现有两张数据表:Halls(大厅表)和Bookings(预订表),样例数据如下:

Halls表样例数据

id   hallName   hallType  numSeats  status
---------------------------------------------
1   Hall 1      Normal    500       active
2   Hall 2      VIP       30        active
3   Hall 3      VVIP      5         active
4   Hall 4      Normal    60        active
5   Hall 5      Normal    80        active
6   Hall 4+5    Normal    140       active

Bookings表样例数据

id custId hallId beginDate    endDate    time        status
-----------------------------------------------------------------
1   1     1      2022-09-26   2022-09-26  morning     confirmed
2   6     4      2022-09-26   2022-09-26  evening     cancelled
3   4     3      2022-09-26   2022-09-26  full time   pending
4   9     4      2022-09-26   2022-09-30  after noon  confirmed

预订时段分为"morning"(上午)、"after noon"(下午)、"evening"(晚上)和"full time"(全天)四种。

需实现的需求

  • 可按endDate(如2022-09-26)过滤记录;
  • 指定beginDate下,未取消的预订时段标记为Booked,无预订或已取消则标记为Available;
  • 若存在"full time"预订,该大厅三个时段均标记为Booked;
  • Hall 6为Hall 4和Hall 5的组合厅,任意一个被预订则Hall 6对应时段标记为unavailable或Booked。

预期报表样例

hallName   hallType  morning   after noon   evening
------------------------------------------------------
hall 1     Normal    Booked      available    available
hall 2     VIP       available   available    available
hall 3     VVIP      Booked      Booked       Booked
hall 4     Normal    available   Booked       available
hall 5     Normal    available   available    available
hall 6     Normal    available   unavailable  available

我对JOIN、MERGE等SQL操作不熟悉,尝试过MERGE语句未成功;左连接的SQL语句如下:

DECLARE @date NVarchar(50) = '2022-09-26'
SELECT h.id, h.hallName, h.hallType, b.time FROM Halls h LEFT JOIN 
        Bookings b ON b.hallId=h.id WHERE b.beginDate=@date

该语句仅返回已预订大厅,去掉WHERE子句则未预订时段显示为NULL。此外需求从单日期查询改为beginDate和endDate范围查询,难度增加,特此求助。


内容的提问来源于stack exchange,提问作者Abdi fatah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:10:19