SQL 带条件的oracle SUM函数

SQL oracle SUM function with conditions

我有一个 table 看起来像这样

TIMECODE  UNIT_CODE   Department   Account      AMOUNT  
20194        10        1000             1000     100     
20194        10        2354             1100     150        
20194        10        1000             1000     200         
20194        10        2354             1000     100          
20194        20        500              1000     250         
20194        20        500              1100     200  

我需要的结果是这样的

TIMECODE  UNIT_CODE   Department   1000      1100  
20194        10        1000        300       NULL     
20194        10        2354        100       150                
20194        20        500         250       200

希望这能给你一个更好的形象,但基本上我需要根据其他列的不同值做一个 SUM。以前在行中的帐户将更改为列。

任何想法或帮助将不胜感激

尝试以下操作,这里是 demo

select
    TIMECODE,
    UNIT_CODE,
    Department,
    sum(case when Account = 1000 then AMOUNT end) as "1000",
    sum(case when Account = 1100 then AMOUNT end) as "1100"
from myTable
group by
    TIMECODE,
    UNIT_CODE,
    Department

输出:

---------------------------------------------------
| TIMECODE    UNIT_CODE   DEPARTMENT  1000    1100 |
---------------------------------------------------
|  20194          20          500      250     200 |
|  20194          10          1000     300     null|
|  20194          10          2354     100     150 |
---------------------------------------------------