-- 设置查询的开始日期和结束日期
DECLARE @StartDate DATE = '2024-06-30';
DECLARE @EndDate DATE = '2024-7-01';
-- 创建并填充临时日期表
WITH DateRange AS (
SELECT @StartDate AS Date
UNION ALL
SELECT DATEADD(DAY, 1, Date)
FROM DateRange
WHERE DATEADD(DAY, 1, Date) <= @EndDate
)
-- 找出缺失的日期
SELECT d.Date INTO #MissingDates FROM DateRange d
LEFT JOIN FORM1 t ON d.Date = t.billdate WHERE t.billdate IS NULL
OPTION (MAXRECURSION 0); --递归
-- 检查是否存在缺失的日期并提示用户
IF EXISTS (SELECT 1 FROM #MissingDates)
BEGIN
--输出未生成日期
SELECT Date FROM #MissingDates;
END
-- 删除临时表
DROP TABLE #MissingDates;