簡體   English   中英

如何將當前日期與包含一系列日期的列的表進行比較,並將關聯值用作變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM