如何将当前日期与包含具有一系列日期的列的 table 进行比较,并将关联值用作变量?

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 Community 16.3.4

在将成为其他流的前身的数据流中,我有一个简单的 OLE DB 源,它 运行 是针对数据库中的 table 的 SQL 查询returns 4 列:

当我执行包时,我希望包将 运行 日期与最近完成的 CHECK DATE 值进行比较,并将相应的 PAYGROUP、PERIOD START 和 PERIOD END 值设置为要在后续流程。

我试过使用派生列,但即使那样我也无法正确使用语法。此外,如果我能够推断出最近的检查日期和相关值,我也不确定如何将其传递给在后续流程中调用的变量。

为此,我将使用 ExecuteSql 任务。
1) 将结果集设置为单行

2) 使用下面查询的底部 select 正确的行

3) 在结果集中,将列映射到变量

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