在Microsoft SQL Server中基于Distinct结果集创建表



我的用例是根据不包含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);

相关内容

  • 没有找到相关文章

最新更新