-1

мне нужно решить мою проблему в TSQLSplit Один столбец в несколько столбцов в TSQL

Текущая таблица

TRX  DOC  ITEM  DOCTYPE  QTY 
-------------------------------------------- 
123  ASM1  001  1   100 
124  ASM2  002  1    10 
234  ADJ1  002  2   -30 
456  SAL1  001  3   -20 
457  SAL2  002  3   -10 
789  PRE1  002  4    10 
910  ADJ2  001  2    20 

Как разделить столбец QTY просуммировать (КОЛ) AS QTYIN и QTYOUT как это

ITEM QTYIN QTYOUT TOTQTY 
--------------------------------- 
001  120  -10  110 
002  20  -50  -30 

Спасибо за помощь, мне нужно решение.

+2

не может понять логику здесь. Пожалуйста, объясните логику того, что вы хотите – DevelopmentIsMyPassion

+0

Сумма положительных результатов в одном столбце, сумма отрицательных в другой - это то, что вам нужно, сгруппировано по элементу. TotQty - это всего лишь SUM – Andrew

+1

, если это так, тогда у пункта 001 есть qty 100, -20 и 20. Таким образом, сумма положительных будет 120, сумма отрицательных будет -20, а суммарный кол-во будет 100. Но Afriadi написал QTYOUT для позиции 001 как -10, что неправильно, я думаю. Я прав? – DevelopmentIsMyPassion

ответ

4

Используйте пункт GROUP BY объединить результаты по Item, затем SUM с CASE заявление в общей сложности более конкретных критериев (DEMO):

select 
    item, 
    sum(case when qty > 0 then qty end) as qtyin, 
    sum(case when qty < 0 then qty end) as qtyout, 
    sum(qty) as totqty 
from 
    Table1 
group by 
    Item 

Пример вывода (я предполагаю, что различия только опечаток?):

| ITEM | QTYIN | QTYOUT | TOTQTY | 
---------------------------------- 
| 1 | 120 | -20 | 100 | 
| 2 | 20 | -40 | -20 | 
Смежные вопросы