【发布时间】:2013-03-04 20:04:11
【问题描述】:
我有一个公式,我需要将其放入我的 SSIS 派生列中...下面是..
if MONTH(Sls.SlsDt) + DAY(Sls.SlsDt) > MONTH(TODAY) + DAY(TODAY) then
dYdtYr = 0.
else
dYdtYr = YEAR(Sls.SlsDt).
如何将上述业务逻辑放入 SQL SSIS ETL 派生列转换?
派生列是完成此任务的正确选择吗?
ETL 包是从 CSV 到 SQL 临时表的导入,在此导入期间,我需要输出一个已实现上述逻辑的新列(或替换现有列)。
输入行包含 MONTH 和 DAY 以及 dYdtYr 列。从某种意义上说,我需要根据上述逻辑用新值覆盖 dYdtYr 值。
【问题讨论】:
-
或者,如果 SSIS 太有限,我可以执行一个 TSQL SP,它查看临时表并处理上述逻辑......然后我会在我的 SSIS ETL 中添加一个执行 SP 的步骤。
-
您是说如果销售月份和日期(格式为 1225)大于今天的日期 (0304) 则设置 dYtdYr = 0 否则设置 dYtdYr = 销售年份?这行得通吗?
-
T-SQL
MONTH和DAY函数都返回整数。您真的想将这两个数字加在一起,还是真的是在尝试比较两个日期?
标签: sql-server ssis