Я пытаюсь применить сумму 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 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.
Я понимаю, что не так, но на самом деле не знаю как это исправить.
Чтобы дать немного больше подробностей, указанный номер счета c будет иметь только одну строку со значением, отличным от нуля, в столбце Buy_ann (полученном в результате однократной корректировки ставки для столбца COF_ann). Проблема в том, что я никогда не знаю, какая это строка, не глядя на данные (и именно поэтому я пытаюсь дать значение суммы всем строкам с одинаковым номером счета). Я предполагаю, что могли бы быть другие способы сделать это, которые, вероятно, более эффективны.
Заранее спасибо, Одри Бодуан