IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

is it possible to create TWO temporary tables?


IBM Mainframe Forums -> DB2
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
darkstar13

New User


Joined: 06 Nov 2008
Posts: 46
Location: Manila, Philippines

PostPosted: Wed Oct 07, 2009 6:50 am
Reply with quote

Hi All,
I need to create a file with daily & MTD values side by side, something like this:
Code:

RELM     RELM NAME   QTY   RATE   CHARGE       QTY    RATE  CHARGE
AAAA     AAAAAAAAA   5.00  0.200  5.000       20.00  0.200  40.000
BBBB     BBBBBBBBB   1.00  0.200  8.000       15.00  0.200  60.000
CCCC     CCCCCCCCC   0.00  0.000  0.000       14.00  0.400  20.000
DDDD     DDDDDDDDD   2.00  0.100  3.000       30.00  0.300  30.000


This file will come from a single DB2 table.
I am thinking of doing a join, but I don't know how to do that since in the case of RELM CCCC, it has no daily trade but it has trades for the month, and thus must appear as zero for the daily.

With that, I thought of creating TWO temporary tables, and then select on them. However, i don't know ho, or if it is even possible.

I have not found any significant info regarding this in the manual,
and I have been looking for an hour already. I always just get how to create a GTT, which is not what I want. Any ideas how to?

Currently, for one table, I have (which won't make sense to use with only one table):
Code:

*********************** Top of Data ************
WITH   DLY_OCC_BKRG_TBL                         
     ( DLY_BKR_SHRT_NME                         
     , DLY_OPT_INSTRY_TYP                       
     , DLY_CNTRCT_AMT                           
     , DLY_RTE                                 
     , DLY_CHRG_AMT                             
     )                                         
  AS (                                         
        SELECT EXEC_BKR_SHRT_NME               
             , CASE OPT_INSTR_TYP               
               WHEN 'E' THEN 'EQUITY'           
               WHEN 'I' THEN 'INDEX'           
               END AS INSTR_TYP                 
             , SUM(TXN_QTY)        AS CONTRACTS
             , PER_UNIT_RTE                     
             , SUM(THIRD_PRTY_AMT) AS CHARGES   
          FROM CCCB.GOBS_OCC_BRKRG_SMRY         
         WHERE DATE (PROCESS_TS) = '2009-10-01'         
         GROUP BY EXEC_BKR_SHRT_NME                     
             , OPT_INSTR_TYP                             
             , PER_UNIT_RTE                             
                                                         
        UNION                                           
                                                         
        SELECT EXEC_BKR_SHRT_NME                         
             , CASE OPT_INSTR_TYP                       
               WHEN 'E' THEN 'EQUITY'                   
               WHEN 'I' THEN 'INDEX'                     
               END AS INSTR_TYP                         
             , 0.00 AS CONTRACTS                         
             , PER_UNIT_RTE                             
             , 0.00 AS CHARGES                           
          FROM CCCB.GOBS_OCC_BRKRG_SMRY                 
         WHERE DATE (PROCESS_TS) BETWEEN '2009-09-01' AND
                                         '2009-09-30'   
           AND EXEC_BKR_SHRT_NME NOT IN                   
               (                                           
                 SELECT DISTINCT(EXEC_BKR_SHRT_NME)       
                   FROM CCCB.GOBS_OCC_BRKRG_SMRY           
                  WHERE DATE (PROCESS_TS) = '2009-09-30'   
               )                                           
         GROUP BY EXEC_BKR_SHRT_NME                       
             , OPT_INSTR_TYP                               
             , PER_UNIT_RTE                               
        HAVING (  SUM(TXN_QTY)        <> 0                 
               OR SUM(THIRD_PRTY_AMT) <> 0 )               
     )                             
SELECT  DLY_BKR_SHRT_NME       
      , DLY_OPT_INSTRY_TYP     
      , DLY_CNTRCT_AMT         
      , DLY_RTE               
      , DLY_CHRG_AMT           
  FROM  DLY_OCC_BKRG_TBL       
   ;                                                 

Code:
Code:
Back to top
View user's profile Send private message
darkstar13

New User


Joined: 06 Nov 2008
Posts: 46
Location: Manila, Philippines

PostPosted: Wed Oct 07, 2009 8:37 am
Reply with quote

Hi,
After several tries, I got the syntax:
Code:

WITH <TEMPTABLE1>     
     (                   
       <T1COLNAME1>       
     , <T1COLNAME2>       
     ,      .           
     ,      .           
     , <T1COLNAMEN>       
     )                   
  AS ( SELECT <COL1>     
            , <COL2>     
            ,    .       
            ,    .       
            , <COLN>     
         FROM <TABLENAME>
        WHERE <CONDITION>
     )                   
,
   <TEMPTABLE2>     
     (                   
       <T2COLNAME1>       
     , <T2COLNAME2>       
     ,      .           
     ,      .           
     , <T2COLNAMEN>       
     )                   
  AS ( SELECT <COL1>     
            , <COL2>     
            ,    .       
            ,    .       
            , <COLN>     
         FROM <TABLENAME>
        WHERE <CONDITION>
     )           
SELECT T1COLNAME1
    ,  T2COLNAME2
        .
        .
        .
FROM TEMPTABLE1
   , TEMPTABLE2
WHERE  <CONDITION>
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> DB2

 


Similar Topics
Topic Forum Replies
No new posts How to create a list of SAR jobs with... CA Products 3
No new posts create rexx edit Macro that edits the... CLIST & REXX 3
No new posts Need to fetch data from so many DB2 t... DB2 9
No new posts COBOL - create and write to output fi... COBOL Programming 0
No new posts Best way to create an automated line ... TSO/ISPF 3
Search our Forums:

Back to Top