【发布时间】:2015-09-30 18:05:40
【问题描述】:
我正在尝试确定在 SSIS 或直接 TSQL 中基于给定键合并两行的最佳方法,但根据各种聚合规则(特别是 MAX 和 SUM)从每一行获取特定数据。例如,给定以下数据集:
Customer Name Total Date Outstanding
12345 A 100 7/15/2015 500
12345 200 1/1/2015 300
456 B 500 1/2/2010 100
456 B 250 2/1/2015 900
78 C 100 9/15/2015 500
我希望将这些合并到每个客户键的一行中,以以下规则为例:
- 如果任何名称为空,请为该客户使用不为空的对应值
- MAX(总计)
- MAX(日期)
- 总和(优秀)
结果集将是:
Customer Name Total Date Outstanding
12345 A 200 7/15/2015 800
456 B 500 2/1/2015 1000
78 C 100 9/15/2015 500
这里最好的方法是什么?我的第一直觉是查询表以在客户上连接到自身以获取单行上的所有值,然后在 SSIS 的派生列任务中使用公式来确定要使用的值。我担心这是不可扩展的——如果我有一个客户在主数据集中只出现两次,它就可以正常工作,但目标是让逻辑适用于 N 行,而无需进行大量返工。我确定这里还缺少一种 TSQL 方法。任何帮助将不胜感激。
【问题讨论】:
标签: sql-server ssis