我有一张桌子,可以容纳一年中的所有天/月
例如
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
我如何比较这两个表以显示该特定月份的数据集中缺少哪些日期
对于上面示例中的数据集所在的EG,webshop
缺少日期范围01/09/2013-19/09/2013
谢谢你的帮助!
您可以使用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);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句