小编And*_*unt的帖子

SQL Server CTE 问题

这个问题参考了我的最后一个问题:SQL Server 08: Union over while

我正在编写一个 CTE 来执行该问题中描述的操作(在给定的天数内找到可用的时间段。

我写了一个 CTE,但我不太明白如何让我的日期增加和限制。就目前而言,它仅从 2011-07-30 (@ArrivalDate) 获取数据。任何人都可以向我解释如何正确增加它,以及我哪里出错了?

更新:我想出了一个更好的查询来获取所有可用的时间段

(SELECT TS.UKTNN, TS.TimeSlotID, TS.TimeSlotGroupID 
 FROM FittingCentreTimeSlotGroupTimeSlots TS)
EXCEPT
(Select BFD.UKTNN, BFD.TimeSlotID, BFD.TimeSlotGroupID 
 From BookedFittingDates BFD) 
Run Code Online (Sandbox Code Playgroud)

这是评论中要求的表结构:

TimeSlotGroup UKTNNTimeSlotGroupID,TimeSlotGroupDesc

TimeSlotGroupTimeSlots UKTNNTimeSlotIDTimeSlotGroupID,TimeSlotDesc

BookedDates UKTNNTimeSlotGroupIDTimeSlotID日期

这是我现有的 CTE 现在的样子

Use[DEV_UKTN_DATA]
GO 
DECLARE @UKTNN int;
DECLARE @ArrivalDate date;
DECLARE @NumDays int;
DECLARE @LoopDate date;

SET @UKTNN = 7;
SET @ArrivalDate = '2011-07-30';
SET …
Run Code Online (Sandbox Code Playgroud)

sql-server query cte

5
推荐指数
1
解决办法
474
查看次数

标签 统计

cte ×1

query ×1

sql-server ×1