忍者ブログ
概ね直径1メートル以内で起こる、結構、身近な話について書きとめています。

ACCESS_ピボットで縦横変換する

支払明細などで、その日に発生した金額を区分ごとに集計したりするのに使えそう。



T1クエリ 日毎/OKNG区分ごと をただ集計しただけ
SELECT DISTINCTROW T1.NGP, T1.KBN, Sum(T1.SU) AS [SU の 合計]
FROM T1
GROUP BY T1.NGP, T1.KBN;

 


クエリ1 日毎のOKNG区分を集計して、OK/NGを横並び(項目)にした
TRANSFORM sum(T1.SU) AS 合計数
SELECT T1.NGP
FROM T1
GROUP BY T1.NGP
PIVOT T1.KBN;

クエリ2 日によってはOKやNGしかないので、「NULL(Nz)なら0」を追記
TRANSFORM CInt(Nz(sum(T1.SU),0)) AS 合計数
SELECT T1.NGP
FROM T1
GROUP BY T1.NGP
PIVOT T1.KBN;

CIntはデータ型変換で、Int数値型にする関数


クエリ3 「NULLなら99999」でしかも金額型にして、のパターン
TRANSFORM CCur(Nz(sum(T1.SU),99999)) AS 合計数
SELECT T1.NGP
FROM T1
GROUP BY T1.NGP
PIVOT T1.KBN;

PR