【发布时间】:2020-03-17 02:54:32
【问题描述】:
当它是相同的帐号时,我正在尝试应用 Buy_Ann 的总和。看起来很简单,但我还没有...
Date Account TX_Ann COF_Ann Buy_Ann
Jan 01006243 0.02392433 0.02293156 0.00099277
Feb 01006243 0.02392433 0.02392433 0.00000000
Mar 01006243 0.02392433 0.02392433 0.00000000
Feb 01006491 0.02301613 0.01818841 0.00482772
Mar 01006491 0.02301613 0.02301613 0.00000000
我的代码是:
SELECT
[Date]
,[Account]
,[TX_ann]
,[CDF_ann]
,(TX_ann-CDF_ann) as Buy_ann
FROM [Table1]
Order by Account
我想要的结果是:(Buy_ann 栏)
Date Account TX_Ann COF_Ann Buy_Ann
Jan 01006243 0.02392433 0.02293156 0.00099277
Feb 01006243 0.02392433 0.02392433 0.00099277
Mar 01006243 0.02392433 0.02392433 0.00099277
Feb 01006491 0.02301613 0.01818841 0.00482772
Mar 01006491 0.02301613 0.02301613 0.00482772
我尝试了以下代码:
SELECT TOP 1000
[Date]
,[Account]
,[TX_ann]
,[CDF_ann]
,(Select TOP 1000 Sum(TX_ann-CDF_ann)
FROM Table1 Group by Account)) as Buy_ann
FROM [Table1]
Order by Account
这是我得到的错误消息:子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。
我知道出了什么问题,但我真的不知道如何解决它。
为了提供更多详细信息,特定帐号在 Buy_ann 列中将只有一行具有不同于零的值(由于对 COF_ann 列进行了一次费率调整)。问题是,如果不查看数据,我永远不知道它是哪一行(这就是为什么我试图将总和的值赋予具有相同帐号的所有行)。我想可能还有其他可能更有效的方法。
提前致谢, 奥黛丽·博多安
【问题讨论】: