Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何将当前日期与包含具有一系列日期的列的表进行比较,并将关联值用作变量?_Visual Studio_Ssis_Sql Server Data Tools_Ssdt Bi - Fatal编程技术网

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

Visual studio 如何将当前日期与包含具有一系列日期的列的表进行比较,并将关联值用作变量?,visual-studio,ssis,sql-server-data-tools,ssdt-bi,Visual Studio,Ssis,Sql Server Data Tools,Ssdt Bi,使用SSDT 16.0.61908、SSIS 15.0.2000和VS Community 16.3.4 在将作为其他流的前身的数据流中,我有一个简单的OLE DB源,它对返回4列的DB中的表运行SQL查询: 工资组 期初 期末 核对日期 当我执行包时,我希望包将运行日期与最近完成的检查日期值进行比较,并将相应的PAYGROUP、PERIOD START和PERIOD END值设置为变量,以便在后续流中使用 我尝试过使用派生列,但即使这样,我也无法获得正确的语法。此外,如果我能够推断出最近的检查

使用SSDT 16.0.61908、SSIS 15.0.2000和VS Community 16.3.4

在将作为其他流的前身的数据流中,我有一个简单的OLE DB源,它对返回4列的DB中的表运行SQL查询:

工资组 期初 期末 核对日期 当我执行包时,我希望包将运行日期与最近完成的检查日期值进行比较,并将相应的PAYGROUP、PERIOD START和PERIOD END值设置为变量,以便在后续流中使用


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

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

2使用下面查询的底部选择正确的行

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

将运行日期与最近完成的检查日期值进行比较是什么意思?您正在尝试在表中查找特定记录吗?是的,如果我今天运行它,我希望它在支票日期值中查找今天之前的最新日期,然后从PAYGROUP传递相应的值,将用于触发后续流的变量的周期开始和周期结束如果进程具有对数据库的写入权限,这将是一个不错的选择,但它们不会。有没有办法在不创建/删除表的情况下做到这一点?这种计算会以某种方式存在于内存中吗?只需将SELECT部分与实际的表名和列名一起使用即可。上面的内容只是为了说明它是如何工作的。对不起,如果这是混淆哈!是的,我已经沿着那条路走了…快到了。。。