|
以下の様な構造のテーブルで、
CREATE TABLE
テスト_tbl(
支店 TEXT(10),
部門 TEXT(10),
金額 LONG,
PRIMARY KEY
(支店,部門)
)
以下のようなデータを
支店 部門 金額
A 100 400
A 200 100
A 300 200
A 400 300
B 100 100
B 200 300
B 300 150
B 400 250
C 100 200
C 200 200
C 300 200
C 400 300
D 100 500
D 200 400
D 300 100
D 400 200
支店,部門でクロス集計して
下記のような集計をするには、
支店 100 200 300 400 500 600 700 800 900 部門合計金額
A 400 100 200 300 0 0 0 0 0 1000
B 100 300 150 250 0 0 0 0 0 800
C 200 200 200 300 0 0 0 0 0 900
D 500 400 100 200 0 0 0 0 0 1200
下記のようなSQLで実現出来ます。
SELECT 支店,
sum(iif(部門='100',金額,0)) AS 100,
sum(iif(部門='200',金額,0)) AS 200,
sum(iif(部門='300',金額,0)) AS 300,
sum(iif(部門='400',金額,0)) AS 400,
sum(iif(部門='500',金額,0)) AS 500,
sum(iif(部門='600',金額,0)) AS 600,
sum(iif(部門='700',金額,0)) AS 700,
sum(iif(部門='800',金額,0)) AS 800,
sum(iif(部門='900',金額,0)) AS 900,
sum(金額) AS 部門合計金額
FROM テスト_tbl
GROUP BY 支店
ORDER BY 支店;
|
|