目安箱 IV

目安箱投稿のルールはこちらをごらんください。
ご意見は電子メールで承っています。
「目安箱」は質問禁止です。技術的な質問はそれぞれの質問箱へどうぞ。

迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
251 / 277 ←次へ | 前へ→

【33】Re:クロス集計のSQL2
Access  孫悟空  - 02/12/6(金) 11:51 -

引用なし
パスワード
   以下の様な構造のテーブルで、
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 支店;

4,715 hits

【31】クロス集計のSQL 孫悟空 02/12/6(金) 10:47 Access[未読]
【33】Re:クロス集計のSQL2 孫悟空 02/12/6(金) 11:51 Access[未読]
【34】Re:クロス集計のSQL1 孫悟空 02/12/6(金) 11:53 Access[未読]
【35】Re:クロス集計のSQL1 平社員 02/12/6(金) 12:40 Access[未読]

  新規投稿 ┃ツリー表示 ┃一覧表示 ┃トピック表示 ┃検索 ┃設定 ┃ホーム  
251 / 277 ←次へ | 前へ→
ページ:  ┃  記事番号:   
0
(SS)C-BOARD v3.8 is Free