我有一张可以容纳一年中所有天/月的表
例如
Day Month 1 9 2 9 3 9 4 9 5 9 6 9 7 9 ... ...
我有一张表格,显示来自不同数据集的日期范围
DataSet DateRange webshop 2013-09-20 webshop 2013-09-21 webshop 2013-09-22 webshop 2013-09-23 webshop 2013-09-24 webshop 2013-09-25 webshop 2013-09-26 webshop 2013-09-27 webshop 2013-09-28 webshop 2013-09-29 webshop 2013-09-30
我如何比较这两个表以显示该特定月份的数据集中缺少哪些日期
对于上面示例中的数据集所在的示例,EGwebshop缺少日期范围01/09/2013-19/09/2013
webshop
谢谢你的帮助!
您可以使用CTE并通过以下方式编写查询:
declare @StartDate DATE, @EndDate DATE set @StartDate = '2013-09-01'; set @EndDate = '2013-09-30'; WITH DateRange(Date) AS ( SELECT @StartDate Date UNION ALL SELECT DATEADD(day, 1, Date) Date FROM DateRange WHERE Date < @EndDate ) SELECT 'webshop',Date FROM DateRange EXCEPT SELECT DataSet,DateRange FROM ImportedDateRange WHERE DataSet='webshop' --You could remove Maximum Recursion level constraint by specifying a MaxRecusion of zero OPTION (MaxRecursion 10000);