-1

我需要在 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 拆分为 sum(QTY) AS QTYIN 和 QTYOUT

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

感谢您的帮助,我需要解决方案。

4

1 回答 1

4

使用一个GROUP BY子句来组合结果 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 |
于 2013-01-30T20:55:58.603 回答