Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 22.84 KB | None | 0 0
  1. -- Lab 7
  2. -- Source instructor files.
  3. -- @..\lab7\lab7.sql
  4.  
  5. SPOOL lab8.log
  6.  
  7. --    _____ __                ___
  8. --   / ___// /____  ____     <  /
  9. --   \__ \/ __/ _ \/ __ \    / /
  10. --  ___/ / /_/  __/ /_/ /   / /  
  11. -- /____/\__/\___/ .___/   /_/  
  12. --              /_/            
  13.  
  14. BEGIN
  15. FOR i IN (SELECT TABLE_NAME
  16.             FROM   user_tables
  17.             WHERE  TABLE_NAME IN ('CALENDAR')) LOOP
  18.     EXECUTE IMMEDIATE 'DROP TABLE '||i.TABLE_NAME||' CASCADE CONSTRAINTS';
  19. END LOOP;
  20. END;
  21. /
  22. DROP SEQUENCE CALENDAR_s1;
  23.  
  24.  
  25. -- Create table.
  26. CREATE TABLE CALENDAR
  27. ( CALENDAR_ID                 INT
  28. , CALENDAR_NAME               VARCHAR(10)   CONSTRAINT nn_CALENDAR_1  NOT NULL
  29. , CALENDAR_SHORT_NAME         VARCHAR(3)    CONSTRAINT nn_CALENDAR_2  NOT NULL
  30. , START_DATE                  DATE          CONSTRAINT nn_CALENDAR_3  NOT NULL
  31. , END_DATE                    DATE          CONSTRAINT nn_CALENDAR_4  NOT NULL
  32. , created_by                  INT           CONSTRAINT nn_CALENDAR_8  NOT NULL
  33. , creation_date               DATE          CONSTRAINT nn_CALENDAR_9  NOT NULL
  34. , last_updated_by             INT           CONSTRAINT nn_CALENDAR_10 NOT NULL
  35. , last_update_date            DATE          CONSTRAINT nn_CALENDAR_11 NOT NULL
  36. , CONSTRAINT fk_CALENDAR_4 FOREIGN KEY(created_by)       REFERENCES system_user(system_user_id)
  37. , CONSTRAINT fk_CALENDAR_5 FOREIGN KEY(last_updated_by)  REFERENCES system_user(system_user_id));
  38.  
  39. -- Create sequence.
  40. CREATE SEQUENCE CALENDAR_s1 START WITH 1;
  41.  
  42.  
  43.  
  44. --    _____ __                ___
  45. --   / ___// /____  ____     |__ \
  46. --   \__ \/ __/ _ \/ __ \    __/ /
  47. --  ___/ / /_/  __/ /_/ /   / __/
  48. -- /____/\__/\___/ .___/   /____/
  49. --              /_/              
  50. -- Seeding the calendar
  51.  
  52. DECLARE
  53.   -- Create local collection data types.
  54.   TYPE smonth IS TABLE OF VARCHAR2(3);
  55.   TYPE lmonth IS TABLE OF VARCHAR2(9);
  56.  
  57.   -- Declare month arrays.
  58.   CALENDAR_NAME SMONTH := smonth('JAN','FEB','MAR','APR','MAY','JUN'
  59.                               ,'JUL','AUG','SEP','OCT','NOV','DEC');
  60.   CALENDAR_SHORT_NAME  LMONTH := lmonth('January','February','March','April','May','June'
  61.                               ,'July','August','September','October','November','December');
  62.  
  63.   -- Declare base dates.
  64.   START_DATE DATE := '01-JAN-09';
  65.   END_DATE   DATE := '31-JAN-09';
  66.  
  67.   -- Declare years.
  68.   years      NUMBER := 1;
  69.  
  70. BEGIN
  71.  
  72.   -- Loop through years and months.
  73.   FOR i IN 1..years LOOP
  74.     FOR j IN 1..CALENDAR_SHORT_NAME.COUNT LOOP
  75.       INSERT INTO CALENDAR VALUES
  76.       ( CALENDAR_s1.NEXTVAL
  77.       , CALENDAR_SHORT_NAME(j)
  78.       , CALENDAR_NAME(j)
  79.       , add_months(start_date,(j-1)+(12*(i-1)))
  80.       , add_months(end_date,(j-1)+(12*(i-1)))
  81.       , 1
  82.       , SYSDATE
  83.       , 1
  84.       , SYSDATE
  85.       );
  86.     END LOOP;
  87.   END LOOP;
  88.  
  89. END;
  90. /
  91.  
  92.  
  93. --    _____ __                _____
  94. --   / ___// /____  ____     |__  /
  95. --   \__ \/ __/ _ \/ __ \     /_ <
  96. --  ___/ / /_/  __/ /_/ /   ___/ /
  97. -- /____/\__/\___/ .___/   /____/
  98. --              /_/
  99.  
  100.  
  101. BEGIN
  102. FOR i IN (SELECT TABLE_NAME
  103.             FROM   user_tables
  104.             WHERE  TABLE_NAME IN ('TRANSACTION_REVERSAL')) LOOP
  105.  
  106.     EXECUTE IMMEDIATE 'DROP TABLE '||i.TABLE_NAME||' CASCADE CONSTRAINTS';
  107. END LOOP;
  108. END;
  109. /
  110. DROP SEQUENCE TRANSACTION_REVERSAL_s1;
  111.  
  112.  
  113. -- Create table.
  114. CREATE TABLE TRANSACTION_REVERSAL
  115. ( TRANSACTION_ID              INT
  116. , TRANSACTION_ACCOUNT         VARCHAR(15)  
  117. , TRANSACTION_TYPE            INT          
  118. , TRANSACTION_DATE            DATE          
  119. , TRANSACTION_AMOUNT          FLOAT        
  120. , RENTAL_ID                   INT          
  121. , PAYMENT_METHOD_TYPE         INT          
  122. , PAYMENT_ACCOUNT_NUMBER      VARCHAR(19)  
  123. , created_by                  INT          
  124. , creation_date               DATE          
  125. , last_updated_by             INT          
  126. , last_update_date            DATE          
  127. ) ORGANIZATION EXTERNAL
  128.    ( TYPE oracle_loader
  129.     DEFAULT DIRECTORY download
  130.     ACCESS PARAMETERS
  131.     ( RECORDS DELIMITED BY NEWLINE CHARACTERSET US7ASCII
  132.       NOBADFILE
  133.       NODISCARDFILE
  134.       NOLOGFILE
  135.       FIELDS TERMINATED BY ','
  136.       OPTIONALLY ENCLOSED BY "'"
  137.       MISSING FIELD VALUES ARE NULL )
  138.     LOCATION ('transaction_upload2.csv'))
  139. REJECT LIMIT 0;
  140. );
  141.  
  142.  
  143.  
  144. -- Create sequence.
  145. CREATE SEQUENCE TRANSACTION_REVERSAL_s1 START WITH 1;
  146.  
  147. SET linesize 30;
  148. DESC TRANSACTION_REVERSAL;
  149.  
  150. SET linesize 1000;
  151.  
  152.  
  153.  
  154.  
  155. INSERT INTO TRANSACTION
  156. ( transaction_id
  157. , transaction_account
  158. , transaction_type
  159. , transaction_date
  160. , transaction_amount
  161. , rental_id
  162. , payment_method_type
  163. , payment_account_number
  164. , created_by
  165. , creation_date
  166. , last_updated_by
  167. , last_update_date)
  168. SELECT
  169.   transaction_s1.NEXTVAL
  170. , transaction_account
  171. , transaction_type
  172. , transaction_date
  173. , transaction_amount
  174. , rental_id
  175. , payment_method_type
  176. , payment_account_number
  177. , created_by
  178. , creation_date
  179. , last_updated_by
  180. , last_update_date
  181. FROM transaction_reversal;
  182.  
  183.  
  184.  
  185. SET PAGESIZE 24
  186.  
  187. COLUMN "Debit Transactions"  FORMAT A20
  188. COLUMN "Credit Transactions" FORMAT A20
  189. COLUMN "All Transactions"    FORMAT A20
  190.  
  191. -- Check current contents of the model.
  192. SELECT 'SELECT record counts' AS "Statement" FROM dual;
  193. SELECT   LPAD(TO_CHAR(c1.transaction_count,'99,999'),19,' ') AS "Debit Transactions"
  194. ,        LPAD(TO_CHAR(c2.transaction_count,'99,999'),19,' ') AS "Credit Transactions"
  195. ,        LPAD(TO_CHAR(c3.transaction_count,'99,999'),19,' ') AS "All Transactions"
  196. FROM    (SELECT COUNT(*) AS transaction_count FROM TRANSACTION WHERE transaction_account = '111-111-111-111') c1 CROSS JOIN
  197.         (SELECT COUNT(*) AS transaction_count FROM TRANSACTION WHERE transaction_account = '222-222-222-222') c2 CROSS JOIN
  198.         (SELECT COUNT(*) AS transaction_count FROM TRANSACTION) c3;
  199.        
  200.  
  201. UPDATE TRANSACTION
  202.      SET    transaction_type = 1024
  203.      WHERE  transaction_type = 1026;      
  204.        
  205.        
  206.        
  207.  
  208.  
  209. --    _____ __                __ __
  210. --   / ___// /____  ____     / // /
  211. --   \__ \/ __/ _ \/ __ \   / // /_
  212. --  ___/ / /_/  __/ /_/ /  /__  __/
  213. -- /____/\__/\___/ .___/     /_/  
  214. --              /_/                
  215.  
  216.      
  217. SELECT    
  218.   il.TRANSACTION_ACCOUNT
  219. , il.MONTH1 AS "Jan"
  220. , il.MONTH2 AS "Feb"
  221. , il.MONTH3 AS "Mar"
  222. , il.F1Q AS "F1Q"
  223. , il.MONTH4 AS "Apr"
  224. , il.MONTH5 AS "May"
  225. , il.MONTH6 AS "Jun"
  226. , il.F2Q AS "F2Q"
  227. , il.MONTH7 AS "Jul"
  228. , il.MONTH8 AS "Aug"
  229. , il.MONTH9 AS "Sep"
  230. , il.F3Q AS "F3Q"
  231. , il.MONTH10 AS "Oct"
  232. , il.MONTH11 AS "Nov"
  233. , il.MONTH12 AS "Dec"
  234. , il.F4Q AS "F4Q"
  235. , il.YEARTODATE AS "YTD"
  236. FROM (SELECT
  237. CASE
  238.            WHEN t.transaction_account = '111-111-111-111' THEN 'Debit'
  239.            WHEN t.transaction_account = '222-222-222-222' THEN 'Credit'
  240.          END AS "TRANSACTION_ACCOUNT"
  241. ,        CASE
  242.            WHEN t.transaction_account = '111-111-111-111' THEN 1
  243.            WHEN t.transaction_account = '222-222-222-222' THEN 2
  244.          END AS "SORTKEY"
  245. ,        TO_CHAR
  246.         (SUM(CASE
  247.                WHEN EXTRACT(MONTH FROM transaction_date) = 1 AND
  248.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  249.                  CASE
  250.                    WHEN cl.common_lookup_type = 'DEBIT'
  251.                    THEN t.transaction_amount
  252.                    ELSE t.transaction_amount * -1
  253.                  END
  254.              END),'99,999.00') AS MONTH1
  255. ,        TO_CHAR
  256.         (SUM(CASE
  257.                WHEN EXTRACT(MONTH FROM transaction_date) = 2 AND
  258.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  259.                  CASE
  260.                    WHEN cl.common_lookup_type = 'DEBIT'
  261.                    THEN t.transaction_amount
  262.                    ELSE t.transaction_amount * -1
  263.                  END
  264.              END),'99,999.00') AS MONTH2
  265. ,       TO_CHAR
  266.         (SUM(CASE
  267.                WHEN EXTRACT(MONTH FROM transaction_date) = 2 AND
  268.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  269.                  CASE
  270.                    WHEN cl.common_lookup_type = 'DEBIT'
  271.                    THEN t.transaction_amount
  272.                    ELSE t.transaction_amount * -1
  273.                  END
  274.              END),'99,999.00') AS MONTH3
  275. ,       TO_CHAR
  276.         (SUM(CASE
  277.                WHEN EXTRACT(MONTH FROM transaction_date) IN (1, 2, 3) AND
  278.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  279.                  CASE
  280.                    WHEN cl.common_lookup_type = 'DEBIT'
  281.                    THEN t.transaction_amount
  282.                    ELSE t.transaction_amount * -1
  283.                  END
  284.              END),'99,999.00') AS "F1Q"
  285. ,        TO_CHAR
  286.         (SUM(CASE
  287.                WHEN EXTRACT(MONTH FROM transaction_date) = 4 AND
  288.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  289.                  CASE
  290.                    WHEN cl.common_lookup_type = 'DEBIT'
  291.                    THEN t.transaction_amount
  292.                    ELSE t.transaction_amount * -1
  293.                  END
  294.              END),'99,999.00') AS MONTH4
  295. ,        TO_CHAR
  296.         (SUM(CASE
  297.                WHEN EXTRACT(MONTH FROM transaction_date) = 5 AND
  298.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  299.                  CASE
  300.                    WHEN cl.common_lookup_type = 'DEBIT'
  301.                    THEN t.transaction_amount
  302.                    ELSE t.transaction_amount * -1
  303.                  END
  304.              END),'99,999.00') AS MONTH5
  305. ,       TO_CHAR
  306.         (SUM(CASE
  307.                WHEN EXTRACT(MONTH FROM transaction_date) = 6 AND
  308.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  309.                  CASE
  310.                    WHEN cl.common_lookup_type = 'DEBIT'
  311.                    THEN t.transaction_amount
  312.                    ELSE t.transaction_amount * -1
  313.                  END
  314.              END),'99,999.00') AS MONTH6
  315. ,       TO_CHAR
  316.         (SUM(CASE
  317.                WHEN EXTRACT(MONTH FROM transaction_date) IN (4, 5, 6) AND
  318.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  319.                  CASE
  320.                    WHEN cl.common_lookup_type = 'DEBIT'
  321.                    THEN t.transaction_amount
  322.                    ELSE t.transaction_amount * -1
  323.                  END
  324.              END),'99,999.00') AS "F2Q"
  325. ,        TO_CHAR
  326.         (SUM(CASE
  327.                WHEN EXTRACT(MONTH FROM transaction_date) = 7 AND
  328.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  329.                  CASE
  330.                    WHEN cl.common_lookup_type = 'DEBIT'
  331.                    THEN t.transaction_amount
  332.                    ELSE t.transaction_amount * -1
  333.                  END
  334.              END),'99,999.00') AS MONTH7
  335. ,        TO_CHAR
  336.         (SUM(CASE
  337.                WHEN EXTRACT(MONTH FROM transaction_date) = 8 AND
  338.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  339.                  CASE
  340.                    WHEN cl.common_lookup_type = 'DEBIT'
  341.                    THEN t.transaction_amount
  342.                    ELSE t.transaction_amount * -1
  343.                  END
  344.              END),'99,999.00') AS MONTH8
  345. ,       TO_CHAR
  346.         (SUM(CASE
  347.                WHEN EXTRACT(MONTH FROM transaction_date) = 9 AND
  348.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  349.                  CASE
  350.                    WHEN cl.common_lookup_type = 'DEBIT'
  351.                    THEN t.transaction_amount
  352.                    ELSE t.transaction_amount * -1
  353.                  END
  354.              END),'99,999.00') AS MONTH9
  355. ,       TO_CHAR
  356.         (SUM(CASE
  357.                WHEN EXTRACT(MONTH FROM transaction_date) IN (7, 8, 9) AND
  358.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  359.                  CASE
  360.                    WHEN cl.common_lookup_type = 'DEBIT'
  361.                    THEN t.transaction_amount
  362.                    ELSE t.transaction_amount * -1
  363.                  END
  364.              END),'99,999.00') AS "F3Q"
  365. ,        TO_CHAR
  366.         (SUM(CASE
  367.                WHEN EXTRACT(MONTH FROM transaction_date) = 10 AND
  368.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  369.                  CASE
  370.                    WHEN cl.common_lookup_type = 'DEBIT'
  371.                    THEN t.transaction_amount
  372.                    ELSE t.transaction_amount * -1
  373.                  END
  374.              END),'99,999.00') AS MONTH10
  375. ,        TO_CHAR
  376.         (SUM(CASE
  377.                WHEN EXTRACT(MONTH FROM transaction_date) = 11 AND
  378.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  379.                  CASE
  380.                    WHEN cl.common_lookup_type = 'DEBIT'
  381.                    THEN t.transaction_amount
  382.                    ELSE t.transaction_amount * -1
  383.                  END
  384.              END),'99,999.00') AS MONTH11
  385. ,       TO_CHAR
  386.         (SUM(CASE
  387.                WHEN EXTRACT(MONTH FROM transaction_date) = 12 AND
  388.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  389.                  CASE
  390.                    WHEN cl.common_lookup_type = 'DEBIT'
  391.                    THEN t.transaction_amount
  392.                    ELSE t.transaction_amount * -1
  393.                  END
  394.              END),'99,999.00') AS MONTH12
  395. ,       TO_CHAR
  396.         (SUM(CASE
  397.                WHEN EXTRACT(MONTH FROM transaction_date) IN (10, 11, 12) AND
  398.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  399.                  CASE
  400.                    WHEN cl.common_lookup_type = 'DEBIT'
  401.                    THEN t.transaction_amount
  402.                    ELSE t.transaction_amount * -1
  403.                  END
  404.              END),'99,999.00') AS "F4Q"
  405. ,       TO_CHAR
  406.         (SUM(CASE
  407.                WHEN EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  408.                  CASE
  409.                    WHEN cl.common_lookup_type = 'DEBIT'
  410.                    THEN t.transaction_amount
  411.                    ELSE t.transaction_amount * -1
  412.                  END
  413.              END),'99,999.00') AS "YEARTODATE"
  414.      FROM TRANSACTION t
  415.      INNER JOIN common_lookup cl
  416.      ON       t.transaction_type = cl.common_lookup_id
  417.      AND    cl.common_lookup_table = 'TRANSACTION'
  418.      AND      cl.common_lookup_column = 'TRANSACTION_TYPE'
  419.      INNER JOIN calendar c
  420.      ON       t.transaction_date BETWEEN c.start_date AND c.end_date
  421.      GROUP BY CASE
  422.                 WHEN t.transaction_account = '111-111-111-111' THEN 'Debit'
  423.                 WHEN t.transaction_account = '222-222-222-222' THEN 'Credit'
  424.               END
  425.      ,        CASE
  426.                 WHEN t.transaction_account = '111-111-111-111' THEN 1
  427.                 WHEN t.transaction_account = '222-222-222-222' THEN 2
  428.               END
  429.      ORDER BY CASE
  430.            WHEN t.transaction_account = '111-111-111-111' THEN 1
  431.            WHEN t.transaction_account = '222-222-222-222' THEN 2
  432.          END  ) il
  433. UNION ALL
  434. SELECT    
  435.   il.TRANSACTION_ACCOUNT
  436. , il.MONTH1 AS "Jan"
  437. , il.MONTH2 AS "Feb"
  438. , il.MONTH3 AS "Mar"
  439. , il.F1Q AS "F1Q"
  440. , il.MONTH4 AS "Apr"
  441. , il.MONTH5 AS "May"
  442. , il.MONTH6 AS "Jun"
  443. , il.F2Q AS "F2Q"
  444. , il.MONTH7 AS "Jul"
  445. , il.MONTH8 AS "Aug"
  446. , il.MONTH9 AS "Sep"
  447. , il.F3Q AS "F3Q"
  448. , il.MONTH10 AS "Oct"
  449. , il.MONTH11 AS "Nov"
  450. , il.MONTH12 AS "Dec"
  451. , il.F4Q AS "F4Q"
  452. , il.YEARTODATE AS "YTD"
  453. FROM (SELECT
  454. CASE
  455.            WHEN t.transaction_account = '111-111-111-111' THEN 'Total'
  456.            WHEN t.transaction_account = '222-222-222-222' THEN 'Total'
  457.          END AS "TRANSACTION_ACCOUNT"
  458. ,        CASE
  459.            WHEN t.transaction_account = '111-111-111-111' THEN 3
  460.            WHEN t.transaction_account = '222-222-222-222' THEN 3
  461.          END AS "SORTKEY"
  462. ,        TO_CHAR
  463.         (SUM(CASE
  464.                WHEN EXTRACT(MONTH FROM transaction_date) = 1 AND
  465.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  466.                  CASE
  467.                    WHEN cl.common_lookup_type = 'DEBIT'
  468.                    THEN t.transaction_amount
  469.                    ELSE t.transaction_amount * -1
  470.                  END
  471.              END),'99,999.00') AS MONTH1
  472. ,        TO_CHAR
  473.         (SUM(CASE
  474.                WHEN EXTRACT(MONTH FROM transaction_date) = 2 AND
  475.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  476.                  CASE
  477.                    WHEN cl.common_lookup_type = 'DEBIT'
  478.                    THEN t.transaction_amount
  479.                    ELSE t.transaction_amount * -1
  480.                  END
  481.              END),'99,999.00') AS MONTH2
  482. ,       TO_CHAR
  483.         (SUM(CASE
  484.                WHEN EXTRACT(MONTH FROM transaction_date) = 2 AND
  485.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  486.                  CASE
  487.                    WHEN cl.common_lookup_type = 'DEBIT'
  488.                    THEN t.transaction_amount
  489.                    ELSE t.transaction_amount * -1
  490.                  END
  491.              END),'99,999.00') AS MONTH3
  492. ,       TO_CHAR
  493.         (SUM(CASE
  494.                WHEN EXTRACT(MONTH FROM transaction_date) IN (1, 2, 3) AND
  495.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  496.                  CASE
  497.                    WHEN cl.common_lookup_type = 'DEBIT'
  498.                    THEN t.transaction_amount
  499.                    ELSE t.transaction_amount * -1
  500.                  END
  501.              END),'99,999.00') AS "F1Q"
  502. ,        TO_CHAR
  503.         (SUM(CASE
  504.                WHEN EXTRACT(MONTH FROM transaction_date) = 4 AND
  505.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  506.                  CASE
  507.                    WHEN cl.common_lookup_type = 'DEBIT'
  508.                    THEN t.transaction_amount
  509.                    ELSE t.transaction_amount * -1
  510.                  END
  511.              END),'99,999.00') AS MONTH4
  512. ,        TO_CHAR
  513.         (SUM(CASE
  514.                WHEN EXTRACT(MONTH FROM transaction_date) = 5 AND
  515.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  516.                  CASE
  517.                    WHEN cl.common_lookup_type = 'DEBIT'
  518.                    THEN t.transaction_amount
  519.                    ELSE t.transaction_amount * -1
  520.                  END
  521.              END),'99,999.00') AS MONTH5
  522. ,       TO_CHAR
  523.         (SUM(CASE
  524.                WHEN EXTRACT(MONTH FROM transaction_date) = 6 AND
  525.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  526.                  CASE
  527.                    WHEN cl.common_lookup_type = 'DEBIT'
  528.                    THEN t.transaction_amount
  529.                    ELSE t.transaction_amount * -1
  530.                  END
  531.              END),'99,999.00') AS MONTH6
  532. ,       TO_CHAR
  533.         (SUM(CASE
  534.                WHEN EXTRACT(MONTH FROM transaction_date) IN (4, 5, 6) AND
  535.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  536.                  CASE
  537.                    WHEN cl.common_lookup_type = 'DEBIT'
  538.                    THEN t.transaction_amount
  539.                    ELSE t.transaction_amount * -1
  540.                  END
  541.              END),'99,999.00') AS "F2Q"
  542. ,        TO_CHAR
  543.         (SUM(CASE
  544.                WHEN EXTRACT(MONTH FROM transaction_date) = 7 AND
  545.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  546.                  CASE
  547.                    WHEN cl.common_lookup_type = 'DEBIT'
  548.                    THEN t.transaction_amount
  549.                    ELSE t.transaction_amount * -1
  550.                  END
  551.              END),'99,999.00') AS MONTH7
  552. ,        TO_CHAR
  553.         (SUM(CASE
  554.                WHEN EXTRACT(MONTH FROM transaction_date) = 8 AND
  555.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  556.                  CASE
  557.                    WHEN cl.common_lookup_type = 'DEBIT'
  558.                    THEN t.transaction_amount
  559.                    ELSE t.transaction_amount * -1
  560.                  END
  561.              END),'99,999.00') AS MONTH8
  562. ,       TO_CHAR
  563.         (SUM(CASE
  564.                WHEN EXTRACT(MONTH FROM transaction_date) = 9 AND
  565.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  566.                  CASE
  567.                    WHEN cl.common_lookup_type = 'DEBIT'
  568.                    THEN t.transaction_amount
  569.                    ELSE t.transaction_amount * -1
  570.                  END
  571.              END),'99,999.00') AS MONTH9
  572. ,       TO_CHAR
  573.         (SUM(CASE
  574.                WHEN EXTRACT(MONTH FROM transaction_date) IN (7, 8, 9) AND
  575.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  576.                  CASE
  577.                    WHEN cl.common_lookup_type = 'DEBIT'
  578.                    THEN t.transaction_amount
  579.                    ELSE t.transaction_amount * -1
  580.                  END
  581.              END),'99,999.00') AS "F3Q"
  582. ,        TO_CHAR
  583.         (SUM(CASE
  584.                WHEN EXTRACT(MONTH FROM transaction_date) = 10 AND
  585.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  586.                  CASE
  587.                    WHEN cl.common_lookup_type = 'DEBIT'
  588.                    THEN t.transaction_amount
  589.                    ELSE t.transaction_amount * -1
  590.                  END
  591.              END),'99,999.00') AS MONTH10
  592. ,        TO_CHAR
  593.         (SUM(CASE
  594.                WHEN EXTRACT(MONTH FROM transaction_date) = 11 AND
  595.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  596.                  CASE
  597.                    WHEN cl.common_lookup_type = 'DEBIT'
  598.                    THEN t.transaction_amount
  599.                    ELSE t.transaction_amount * -1
  600.                  END
  601.              END),'99,999.00') AS MONTH11
  602. ,       TO_CHAR
  603.         (SUM(CASE
  604.                WHEN EXTRACT(MONTH FROM transaction_date) = 12 AND
  605.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  606.                  CASE
  607.                    WHEN cl.common_lookup_type = 'DEBIT'
  608.                    THEN t.transaction_amount
  609.                    ELSE t.transaction_amount * -1
  610.                  END
  611.              END),'99,999.00') AS MONTH12
  612. ,       TO_CHAR
  613.         (SUM(CASE
  614.                WHEN EXTRACT(MONTH FROM transaction_date) IN (10, 11, 12) AND
  615.                     EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  616.                  CASE
  617.                    WHEN cl.common_lookup_type = 'DEBIT'
  618.                    THEN t.transaction_amount
  619.                    ELSE t.transaction_amount * -1
  620.                  END
  621.              END),'99,999.00') AS "F4Q"
  622. ,       TO_CHAR
  623.         (SUM(CASE
  624.                WHEN EXTRACT(YEAR FROM transaction_date) = 2009 THEN
  625.                  CASE
  626.                    WHEN cl.common_lookup_type = 'DEBIT'
  627.                    THEN t.transaction_amount
  628.                    ELSE t.transaction_amount * -1
  629.                  END
  630.              END),'99,999.00') AS "YEARTODATE"
  631.      FROM TRANSACTION t
  632.      INNER JOIN common_lookup cl
  633.      ON       t.transaction_type = cl.common_lookup_id
  634.      AND    cl.common_lookup_table = 'TRANSACTION'
  635.      AND      cl.common_lookup_column = 'TRANSACTION_TYPE'
  636.      INNER JOIN calendar c
  637.      ON       t.transaction_date BETWEEN c.start_date AND c.end_date
  638.      GROUP BY CASE
  639.                 WHEN t.transaction_account = '111-111-111-111' THEN 'Total'
  640.                 WHEN t.transaction_account = '222-222-222-222' THEN 'Total'
  641.               END
  642.      ,        CASE
  643.                 WHEN t.transaction_account = '111-111-111-111' THEN 3
  644.                 WHEN t.transaction_account = '222-222-222-222' THEN 3
  645.               END) il;
  646.  
  647.  
  648. SET linesize 1000;
  649. SPOOL OFF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement