【发布时间】:2018-05-14 21:34:29
【问题描述】:
我遇到了一个场景,我必须为保存特定字段数据的选择查询创建一个动态变量。这是场景
表“客户”有以下数据
Column0 Column1 Column2 Column3 Column4 Column5
--------------------------------------------------------
H 123X 11/27/2017 C 10.23
D 123X 78462F103 11/28/2017 A 112.35
D 123X 55024U109 11/28/2017 A 25.30
H 456X 11/27/2017 B 5263.44
D 456X 78462F103 11/28/2017 A 23.00
D 456X 55024U109 11/28/2017 A 12123.00
D 456X 78462F103 11/28/2017 A 56.08
D 456X 55024U109 11/28/2017 C 45.07
现在我必须在 Column0='H' 时使用 Sum(column5) 创建变量,并在 Column0='D' 时将其加载到 Column5 中,直到 Column0='H' 值发生变化(表有多个 H 值)。
示例: 当 Column0='H' 可以说时,我必须计算变量 如果 Column0='H' 则 Variable=Sum(Column5) 即 '5.36'。现在当 Coulmn1='D' 时,Column5 的值应该加载为 5.63,当新的 Column0='H' 到来时,变量的值更改为 '6.33',它应该将更新后的值加载到 'D' 记录中。
对此有何建议?
【问题讨论】:
-
感谢您发布一些示例数据。这有帮助。但是,您在这个新专栏中想要什么完全不清楚。给定您的样本,输出应该是什么?
-
“直到”?基于什么排序?期望的结果将有助于澄清。
-
我必须在 Column0='H' 时计算变量,如果 Column0='H' 那么 Variable=Sum(Column5) 是 '5.36'。现在当 Coulmn1='D' 时,Column5 的值应该加载为 5.63,当新的 Column0='H' 到来时,变量的值更改为 '6.33',它应该将更新后的值加载到 'D' 记录中。跨度>
-
发布您的预期结果。这是没有意义的。我可以断言 H 表示标题,D 表示细节。
-
制作两张表,一张是H数据,一张是D数据。现在你已经有了一个关系数据库!现在您不必执行诸如“在行更改为另一个 H 之前执行操作”之类的操作。因为一张表只有 H,一张只有 D。您在第 1 列中有一个唯一的事务编号,用于将数据关联在一起。那么你所要做的就是学习 GROUP BY Column1 和 SUM。
标签: sql sql-server tsql ssis msbi