我在底部有幾乎相同的邏輯,但我無法放在一起顯示兩列。
我不確定如何將兩個 Cross Apply 查詢合二為一。
select
DateAdd(hour,hour_diff, ps) punch_start
from [dbo].[Stage]
cross apply
(
values
( Try_Convert(datetime, punch_start) )
) x
(ps)
left join
[dbo].[DIM] d on ps between d.start_dt and d.end_dt
,
DateAdd(hour,hour_diff, ps1) punch_end
from [dbo].[Stage]
cross apply
(
values
( Try_Convert(datetime, punch_end) )
) y
(ps1)
left join
[dbo].[DIM] d on ps1 between d.start_dt and d.end_dt
punch_start
Mar 29 2022 3:00AM
Mar 23 2022 6:28PM
Apr 11 2022 3:12AM
Apr 5 2022 10:18AM
Mar 30 2022 7:00AM
Apr 7 2022 2:57AM
Apr 6 2022 8:00PM
Mar 23 2022 2:44AM
Mar 24 2022 12:00PM
Apr 14 2022 7:18AM
punch_end
Mar 29 2022 7:50AM
Mar 23 2022 7:59PM
Apr 11 2022 9:33AM
Apr 5 2022 2:08PM
Mar 30 2022 10:39AM
Apr 7 2022 7:35AM
Apr 6 2022 9:32PM
Mar 23 2022 7:03AM
Mar 24 2022 7:01PM
Apr 14 2022 7:48AM
uj5u.com熱心網友回復:
如果我理解正確,您可以嘗試將兩列組合在VALUES
SELECT
DateAdd(hour,hour_diff, ps) punch_start,
DateAdd(hour,hour_diff, ps1) punch_end
FROM [dbo].[Stage]
CROSS APPLY
(
values (Try_Convert(datetime, punch_start),Try_Convert(datetime, punch_end))
) x (ps,ps1)
left join
[dbo].[DIM] d on
ps between d.start_dt and d.end_dt
OR
ps1 between d.start_dt and d.end_dt
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466600.html
上一篇:按郵政編碼回傳學生名單
