- Goal
セールス別に、当月の売上、前年同月、前月を横並びで表示する。レポートのタイミングはオンデマンドを想定しているので、売上明細からSQLで取り出しを行う。 - How
1. 月別グルーピング用のフラグを、明細に追加
2. DECODE文で、必要な値だけサマリー(条件付きサマリー)
3. GROUP BY ROLLUP で、合計行 を追加
- SourceThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
-- SALES別売上レポートサンプル SELECT CASE WHEN GROUPING(X.SALESNAME)=1 then '[Total]' ELSE X.SALESNAME END SALESNAME -- [Total] を集計行には表示する , SUM(DECODE(X.MFLAG,0,X.AMT,0)) TM --当月 , SUM(DECODE(X.MFLAG,-1,X.AMT,0)) MOM --先月 , SUM(DECODE(X.MFLAG,-2,X.AMT,0)) L2M --先先月 , SUM(DECODE(X.MFLAG,-13,X.AMT,0)) YOY --前年同月 FROM (--- 以下、売上明細の整形, VIEWに切り出すか、MVIEWでどっかにおくべき?? select A.<GL_DATE> GL_DATE , A.<SALES_NAME> SALESNAME , A.<AMOUNT> AMT -- 月の集計フラグを追加 , case when to_char(A.<GL_DATE>,'YYYYMM')=to_char(sysdate),'YYYYMM') --当月 then 0 when to_char(A.<GL_DATE>,'YYYYMM')=to_char(add_months(sysdate,-1),'YYYYMM') --先月 then -1 when to_char(A.<GL_DATE>,'YYYYMM') = to_char(add_months(sysdate,-2),'YYYYMM') --先々月 then -2 when to_char(A.<GL_DATE>,'YYYYMM') = to_char(add_months(sysdate,-13),'YYYYMM') --前年同月 then -13 ELSE 1 END MFLAG FROM <SALES_LINE> A WHERE A.<GL_DATE> >= to_date('01/'||to_char(add_months(sysdate,-13),'MM/YYYY'), 'DD/MM/YYYY') ) X GROUP BY ROLLUP ( A.<SALES_NAME> ) -- ROLLUPで合計行を追加 ORDER BY A.<SALES_NAME> ; This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersSALESNAME TM MOM L2M YOY -------------------------- ---------- ---------- ---------- ---------- SALES1 1021 518 352 363 SALES2 58 65 54 46 SALES3 155 126 123 94 SALES4 70 47 57 67 [Total] 1304 756 586 570
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2016/05/06
前年同月比較、前月比較 - 売上日報 SQL
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿