Posts List

Translate

2014년 3월 12일 수요일

[SQL] 월별 집계 Query

SQL Query
설명은 ... 나중에 하자 ..시간을 내서


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
SELECT T2.DVSN_DEPT_CD,
       T2.PJT_CD,
       T2.PJT_NM,
       T2.CON_AMT,
       T1.CLFC,
       T1.BF_TOT_AMT,
       T1.A01 AS T01,
       T1.A02 AS T02,
       T1.A03 AS T03,
       T1.A04 AS T04,
       T1.A05 AS T05,
       T1.A06 AS T06,
       T1.A07 AS T07,
       T1.A08 AS T08,
       T1.A09 AS T09,
       T1.A10 AS T10,
       T1.A11 AS T11,
       T1.A12 AS T12,
       T1.YY_AMT,
       T1.TOT_AMT,
       (T2.CON_AMT - T1.TOT_AMT) AS REM_AMT
  FROM (SELECT T1.PJT_CD,
               T1.CLFC,
               SUM (CASE WHEN T1.YM < '2014' || '01' THEN T1.AMT END) BF_TOT_AMT,
               SUM (CASE T1.YM WHEN '2014' || '01' THEN T1.AMT END) A01,
               SUM (CASE T1.YM WHEN '2014' || '02' THEN T1.AMT END) A02,
               SUM (CASE T1.YM WHEN '2014' || '03' THEN T1.AMT END) A03,
               SUM (CASE T1.YM WHEN '2014' || '04' THEN T1.AMT END) A04,
               SUM (CASE T1.YM WHEN '2014' || '05' THEN T1.AMT END) A05,
               SUM (CASE T1.YM WHEN '2014' || '06' THEN T1.AMT END) A06,
               SUM (CASE T1.YM WHEN '2014' || '07' THEN T1.AMT END) A07,
               SUM (CASE T1.YM WHEN '2014' || '08' THEN T1.AMT END) A08,
               SUM (CASE T1.YM WHEN '2014' || '09' THEN T1.AMT END) A09,
               SUM (CASE T1.YM WHEN '2014' || '10' THEN T1.AMT END) A10,
               SUM (CASE T1.YM WHEN '2014' || '11' THEN T1.AMT END) A11,
               SUM (CASE T1.YM WHEN '2014' || '12' THEN T1.AMT END) A12,
               SUM (CASE WHEN T1.YM LIKE '2014' || '%' THEN T1.AMT END) YY_AMT,
               SUM (CASE WHEN T1.YM <= '2014' || '12' THEN T1.AMT END) TOT_AMT
        FROM   (SELECT   T1.PJT_CD,
                         T1.YM,
                         CASE T2.RNUM
                            WHEN 1 THEN '01'
                            WHEN 2 THEN '02'
                            WHEN 3 THEN '03'
                            WHEN 4 THEN '04'
                         END
                            CLFC,
                         CASE T2.RNUM
                            WHEN 1 THEN T1.SALES_PLAN_AMT
                            WHEN 2 THEN T1.SALES_ARST_AMT
                            WHEN 3 THEN T1.BLCLCT_PLAN_AMT
                            WHEN 4 THEN BLCLCT_ARST_AMT
                         END
                            AMT
                  FROM   ITA0090 T1, (    SELECT   LEVEL RNUM
                                            FROM   DUAL
                                      CONNECT BY   LEVEL <= 4) T2
                 WHERE   T1.YM <= '2014' || '12') T1
       GROUP BY  T1.PJT_CD, T1.CLFC) T1,
       ITA0020 T2
 WHERE 1=1
   AND T1.PJT_CD(+) = T2.PJT_CD
   
 ORDER BY
       T2.PJT_CD, T1.CLFC

댓글 없음 :

댓글 쓰기