我的用例是根据不包含YYYYMM日期的不同值的结果集为每个月创建行。
示例不同数据结果集
列:姓名、年龄、工作时间
- Miquell,25160
预期结果
列:姓名、年龄、工作时间、日期(YYYYMM(,每月2年(202001、202002、202003等(
Miquell, 25, 160, 202001
Miquell, 25, 160, 202002
Miquell, 25, 160, 202003
这能用一个简单的解决方案吗?复制带有时间戳的数据,并在我更改月份值时继续调整和添加到临时表中,这似乎对用户不太友好。
感谢您的帮助,
您可以使用递归CTE来计算日期并最终联接到您所拥有的行。
WITH
Recursion AS
(
SELECT CAST('2020-01-01' AS date) AS D
UNION ALL
SELECT DATEADD(MONTH, 1, D)
FROM Recursion
WHERE D < '2100-12-01'
)
SELECT 'Miquell' AS Name, 25 AS Age, 160 AS WorkingHours, CONVERT(CHAR(6), D, 112)
FROM Recursion
OPTION (maxrecursion 0);