SQL查询以查找除周末以外的未来可用日期
我有一个名为detail的表,其中存储了作业的开始日期和结束日期。我还有一个名为leaves的表,该表也有leave startdate和leave enddate字段。我需要查找没有周末和休假日期的用户最近的可用日期SQL查询以查找除周末以外的未来可用日期,sql,sql-server-2012,Sql,Sql Server 2012,我有一个名为detail的表,其中存储了作业的开始日期和结束日期。我还有一个名为leaves的表,该表也有leave startdate和leave enddate字段。我需要查找没有周末和休假日期的用户最近的可用日期 DECLARE @PackagerLastAssignedDate DATETIME SELECT @PackagerLastAssignedDate = MAX(EndDate) FROM detail WHERE userId = 1 SELECT lveStart
DECLARE @PackagerLastAssignedDate DATETIME
SELECT @PackagerLastAssignedDate = MAX(EndDate) FROM detail WHERE userId = 1
SELECT lveStartDate,lveEndDate FROM Leaves WHERE UserId = 1 and lveStartDate > @PackagerLastAssignedDate
提前谢谢
Berlin.M试试这个-
DECLARE
@DateFrom DATETIME
, @DateTo DATETIME
SELECT
@DateFrom = '20130101'
, @DateTo = '20130202'
SELECT [Date]
FROM (
SELECT [Date] = DATEADD(DAY, sv.number, t.DateFrom)
FROM (
SELECT
DateFrom = @DateFrom
, diff = DATEDIFF(DAY, @DateFrom, @DateTo)
) t
JOIN [master].dbo.spt_values sv ON sv.number <= diff
WHERE sv.[type] = 'p'
) t2
WHERE DATENAME(WEEKDAY, [Date]) NOT IN ('Saturday', 'Sunday')
AND NOT EXISTS (
SELECT 1
FROM dbo.Leaves l
WHERE l.UserId = 1
AND t2.[Date] BETWEEN l.lveStartDate AND l.lveEndDate
)
这只会消除周末。。我需要避免其他桌上假期的某些特定日期。除了周末和假期之外,我需要选择下3个可用日期。清楚吗?如果需要重新安排到以前的某个日期,我能做什么。。。假设我需要通过检查相同的条件,如排除周末和休假,将@DateFrom设置为前一个日期。。。我怎样才能成功。。。。。