Как сгруппировать две строки в одну строку и суммировать сумму при использовании объединения - PullRequest
2 голосов
/ 22 декабря 2011

Я использовал union в своем скрипте SQL и получил данные ниже. Мой вопрос: как я могу сгруппировать строки 3 и 4, чтобы они стали строкой 0 и суммировали сумму для строк 3 и 4. Заранее спасибо !!

От:
Сумма строки документа

    11000003    1   20.6    
    11000003    2   55  

    11000003    3   55  
    11000003    4   20.6

Кому:
Сумма строки документа

    11000003    1   20.6    
    11000003    2   55  

    11000003    0   75.6    

Вот мой сценарий:

Select Document, Row_number () Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount
From Table A 

Union 

Select Document, Row_number () Over (Partition by DocumentNumber Order by DocumentNumber as Line, Amount
from Table A

но я хочу отредактировать результат объединения в соответствии с моим требованием: сгруппировать его только в одну строку и суммировать сумму

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Один пример, который буквально работает только с предоставленными вами данными, будет:

SELECT Document,Line,Sum(Amount)
FROM
   (SELECT Document,CASE Line WHEN 3 THEN 0 WHEN 4 THEN 0 ELSE Line END as Line,Amount
   FROM
      (<Your current query>) t
   ) t
GROUP BY Document,Line

Но я не знаю, подходит ли это вашим более широким потребностям, поскольку вы не дали большойспецификации пока нет.

0 голосов
/ 22 декабря 2011

Как это:

SELECT Document, SUM(Line), SUM(Amount)
FROM tablename
GROUP BY Document
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...