[英]How do I compare the current date to a table containing columns with series of dates and use associated values as variables?
使用 SSDT 16.0.61908、SSIS 15.0.2000 和 VS 社區 16.3.4
在將成為其他流前身的數據流中,我有一個簡單的 OLE DB 源,它針對返回 4 列的數據庫中的表運行 SQL 查詢:
當我執行 package 時,我希望 package 將運行日期與最近完成的 CHECK DATE 值進行比較,並將相應的 PAYGROUP、PERIOD START 和 PERIOD END 值設置為在后續流程中使用的變量。
我嘗試過使用派生列,但即便如此我也無法正確使用語法。 此外,如果我能夠推斷出最近的檢查日期和相關值,我也不確定如何將其傳遞給后續流程中調用的變量。
為此,我將使用 ExecuteSql 任務。
1)將結果集設置為單行
2)使用下面查詢的底部到 select 正確的行
3) 在結果集中,map 列到變量
DROP TABLE IF EXISTS #Payments;
create table #Payments
(
PAYGROUP nvarchar(100),
[PERIOD START] DATETIME,
[PERIOD END] DATETIME,
[CHECK DATE] DATETIME
);
INSERT INTO #Payments
VALUES('Group1', '2020-01-30', '2020-02-29', '2020-04-15')
, ('Group2', '2020-01-30', '2020-02-29', '2020-04-16')
, ('Group3', '2020-01-30', '2020-02-29', '2020-04-17')
-- Use this code in the SQL task, replace with real table
SELECT top (1)
PAYGROUP,
[PERIOD END],
[PERIOD END]
FROM #Payments
WHERE [CHECK DATE] < Convert(date, getdate())
ORDER BY [CHECK DATE] DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.