我一直在努力做到这一点。从指向我的第一个数据库的数据源,我希望有一个日期-时间引用,然后将其用作另一个数据库上的另一个源的参数,以限制寄存器的数量。
我会是这样的:
Source_1:实现下一个代码并将结果保存在变量@dateRef中。
SELECT IIF(UpdateDtm > CreatedDtm, UpdateDtm, COALESCE(CreatedDtm,UpdateDtm, cast('1900-01-01' as smalldatetime))) as dateRef
FROM
(
SELECT MAX(UpdatedDtm) as UpdateDtm, MAX(CreatedDtm) as CreatedDtm
FROM schema.table
) max_value
Source_2:在我的select语句中使用@dateRef。
select Client, location
from schema.table
where date >= @dateRef
我是数据工厂的新手,在过去的几年里,我一直在Pentaho工作,在那里我可以做这种操作,但这里有点让我困惑。我找了一些例子。然而,似乎没有任何东西显示出我想要实现的场景。
问候,
为了满足您的需求,我认为您可以考虑使用Azure Function Activity来执行上面的sql:
SELECT IIF(UpdateDtm > CreatedDtm, UpdateDtm, COALESCE(CreatedDtm,UpdateDtm, cast('1900-01-01' as smalldatetime))) as dateRef FROM (
SELECT MAX(UpdatedDtm) as UpdateDtm, MAX(CreatedDtm) as CreatedDtm
FROM schema.table ) max_value
然后从Azure Function输出结果,以便在下一步中使用它。无需在变量中设置它。您可以使用@activity('Azure Function1').output
引用该值
下一步是在sql中使用上面的输出,不能只将@activity('Azure Function1').output
写入sql。您必须使用@concat()
方法。例如:
@concat('select Client, location
from schema.table
where date >=', activity('Azure Function1').output)