在 T-SQL 中取消 table 中的日期值分组
Ungrouping dates values in a table in T-SQL
我有以下 table - tbl1:
ClientID DateIn DateOut
2293 04/06/2018 04/10/2018
2295 08/05/2019 08/07/2019
我需要以下结果
ClientID Date
2293 04/06/2018
2293 04/07/2018
2293 04/08/2018
2293 04/09/2018
2293 04/10/2018
2295 08/05/2019
2295 08/06/2019
2295 08/07/2019
所以,代替 DateIn - DateOut ,一个新的 [Date] 字段将上述日期“扩展”为与 ClientID.
关联的单个值
我对这里的方法有点困惑。请帮忙。
你可以尝试使用CTE递归
;WITH CTE AS (
SELECT ClientID ,DateIn ,DateOut
FROM T
UNION ALL
SELECT ClientID,
DATEADD(DAY,1,DateIn),
DateOut
FROM CTE
WHERE DATEADD(DAY,1,DateIn) <= DateOut
)
SELECT ClientID,DateIn as 'Date'
FROM CTE
ORDER BY ClientID,DateIn
我有以下 table - tbl1:
ClientID DateIn DateOut
2293 04/06/2018 04/10/2018
2295 08/05/2019 08/07/2019
我需要以下结果
ClientID Date
2293 04/06/2018
2293 04/07/2018
2293 04/08/2018
2293 04/09/2018
2293 04/10/2018
2295 08/05/2019
2295 08/06/2019
2295 08/07/2019
所以,代替 DateIn - DateOut ,一个新的 [Date] 字段将上述日期“扩展”为与 ClientID.
关联的单个值我对这里的方法有点困惑。请帮忙。
你可以尝试使用CTE递归
;WITH CTE AS (
SELECT ClientID ,DateIn ,DateOut
FROM T
UNION ALL
SELECT ClientID,
DATEADD(DAY,1,DateIn),
DateOut
FROM CTE
WHERE DATEADD(DAY,1,DateIn) <= DateOut
)
SELECT ClientID,DateIn as 'Date'
FROM CTE
ORDER BY ClientID,DateIn