SQL oracle Функция СУММ с условиями - PullRequest
0 голосов
/ 26 мая 2020

У меня есть таблица, которая выглядит так

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

надеюсь, это даст вам лучшее изображение, но в основном я необходимо будет сделать СУММ в зависимости от различных значений других столбцов. Учетные записи, которые раньше были в строках, будут заменены на столбцы.

любые идеи или помощь с этим будут очень благодарны

1 Ответ

1 голос
/ 26 мая 2020

Попробуйте следующее, вот демонстрация .

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 |
---------------------------------------------------
...