Turn a query into a SQL statement

sharronWilliams
sharronWilliams used Ask the Experts™
on
AS400 Sql stament:
I would like to take the Query below, that I built in the AS400 and turn it into a SQL statment to get the same result.  I am trying to learn how to build queries using SQL staments and not the way I currently write them as below in the query builder.


Library . . . . . . . .   ASCENDER     Name, *LIBL, F4 for list                
 Subset  . . . . . . . .                Name, generic*                          
 Position to . . . . . .                Starting characters                    
                                                                               
 Type options (and Query), press Enter.                                        
   1=Create   2=Change   3=Copy   4=Delete   5=Display   6=Print                
   8=Run in batch   9=Run                                                      
 Opt  Query           Text                                           Changed    
                                                                               
      SERVELEMT       service element base                           05/17/07  


Type choices, press Enter.  Press F9 to specify an additional          
  file selection.                                                      
                                                                       
  File . . . . . . . . .   ENCHISL        Name, F4 for list            
    Library  . . . . . .     TCRAR001     Name, *LIBL, F4 for list      
  Member . . . . . . . .   *FIRST         Name, *FIRST, F4 for list    
  Format . . . . . . . .   ENCHIS         Name, *FIRST, F4 for list    
  File ID  . . . . . . .   T01            A-Z99, *ID                    
                                                                       
  File . . . . . . . . .   CHGHISL        Name, F4 for list            
    Library  . . . . . .     TCRAR001     Name, *LIBL, F4 for list      
  Member . . . . . . . .   *FIRST         Name, *FIRST, F4 for list    
  Format . . . . . . . .   CHGHIS         Name, *FIRST, F4 for list    
  File ID  . . . . . . .   T02            A-Z99, *ID                    
                                                                       

Type choice, press Enter.                                                      
                                                                               
   Type of join . . . . . . . .   1      1=Matched records     (INNER JOIN )              
                                         2=Matched records with primary file    
                                         3=Unmatched records with primary file  
                                                                               
Type comparisons to show how file selections are related, press Enter.
  Tests:  EQ, NE, LE, GE, LT, GT                                      
                                                                       
Field             Test     Field                                      
T01.GARNO         EQ       T02.GARNO                                  
T01.FMNUM         EQ       T02.FMNUM                                  
T01.ENCNO         EQ       T02.ENCNO            

                                                                               


 Type definitions using field names or constants and operators, press Enter.    
   Operators:  +, -, *, /, SUBSTR, ||, DATE...                                  
                                                                               
 Field       Expression                         Column Heading        Len   Dec
 INPAT       0                                  inpatient_indicator            
                                                                               
                                                                               
                                                                               
 DATASOURCE  1                                  data_source                    
                                                                               
                                                                               
                                                                       
Field       Expression                         Column Heading      
 PROVIDERDE  (T02.DOCNO)                        provider_de          
                                                                     
                                                                     
                                                                     
 PATIENTID   DIGITS(T01.GARNO) ||               pm_patient_id        
             DIGITS(T01.FMNUM)                                      
                                                                     
                                                                     
Field       Expression                         Column Heading      
CODE_TY2    (T02.CHGTRN)                       CODE_TYPE2          
                                                                   
                                                                   
                                                                   
SERVICEDT   (T01.trndt)                        service_date        
                                                                   
                                                                   
Field       Expression                         Column Heading      
 ENCOUNTER   1                                  encounter_flag      
                                                                   
                                                                   
                                                                   
 ACTION      1                                  action_code        
                                                                   
                                                                   
Field       Expression                         Column Heading        Len   Dec
 SERVICEID   digits(t02.chgtim) ||              service_id                      
                                                                               
             digits(t02.chgseq)                                                
                                                                               


Type sequence number (0-9999) for the names of up to 500 fields to            
   appear in the report, press Enter.                                          
                                                                               
 Seq   Field             Text                                          Len  Dec
   10  SERVICEID         digits(t02.chgtim) ||                           9      
   20  DATASOURCE        1                                               1    0
   30  INPAT             0                                               1    0
   40  PROVIDERDE        (T02.DOCNO)                                     5    0
   50  ENCOUNTER         1                                               1    0
   60  ACTION            1                                               1    0
   70  PATIENTID         DIGITS(T01.GARNO) ||             DIGITS(T0     16      
   80  SERVICEDT         (T01.trndt)                                     8   L  
   90  CODE_TY2          (T02.CHGTRN)                                    5      
  100  T01.GARNO         GUARANTOR NUMBER                               11    0
  110  T01.FMNUM         FAMILY-MEMBER NUMBER                            5    0
  120  T01.ENCNO         PATIENT ENCOUNTER NUMBER                        3    0
                                                                               

Type choices, press Enter.                                          
                                                                   
  Output type  . . . . . . . . . . .   3     1=Display              
                                             2=Printer              
                                             3=Database file        
                                                                   
  Form of output . . . . . . . . . .   1     1=Detail              
                                             2=Summary only        
                                                                   
  Line wrapping  . . . . . . . . . .   N     Y=Yes, N=No            
    Wrapping width . . . . . . . . .         Blank, 1-378          
    Record on one page . . . . . . .   N     Y=Yes, N=No            
                                                                   
                                                                   
Type choices, press Enter.                                                    
   (The printed definition shows the output file record layout.)                
                                                                               
   File . . . . . . . . .   SERVICE        Name, F4 for list                    
     Library  . . . . . .     QGPL         Name, F4 for list                    
   Member . . . . . . . .   *FILE          Name, *FIRST, *FILE, *ALL,          
                                           F4 for list                          
   Data in file . . . . .   2              1=New file, 2=Replace file          
                                           3=New member, 4=Replace member      
                                           5=Add to member                      
                                                                               
   For a new file:                                                              
     Authority  . . . . .   *LIBCRTAUT     *LIBCRTAUT, authorization list name,
                                           *CHANGE, *ALL, *EXCLUDE, *USE        
                                                                               
                                                                               
     Text . . . . . . . .   SERVICE ELEMENT BASE                                
   Print definition . . .   Y              Y=Yes, N=No                          
                                                                               
         
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Author

Commented:
Any help would be greatly appricated, even a push in the right direction?
Check out the Retrieve Query Management Query (RTVQMQRY) command. It will retrieve SQL-like source for a query/400 query.
For example, I ran this command against a query named ZERO in library BH:
RTVQMQRY QMQRY(BH/ZERO)
         SRCFILE(BH/QCLSRC)  
         SRCMBR(ZERO)        
         ALWQRYDFN(*YES)    
It put source into my QCLSRC file in library BH, member ZERO, some of which is below:
SELECT                                                                
  ALL       B1S*(B2S)*(B3S)*(B4S)*(B5S)*(B6S) AS PROD, PUZZF, A1S, A2S
 FROM      CENTRIKO/PUZZLA T01                    
 WHERE     A1S = 0  
 ORDER BY  PROD ASC                              

PROD is a result field, A1S=0 was record selection, PROD was the sort field

This should give you a good start. Post back any questions!
Barry

Author

Commented:
Berry,
Being very green at this, I do not know what QMQRY is or where it would be,  the name of my library is ASCENDER, the file name is servelemt.   I have not idea what my scrcfile would be,  I think that mean source file and I think SRCMBR is the query name or is it the database name that the query produces.

Sorry but I am very new to this, but trying very hard.

sara
Build an E-Commerce Site with Angular 5

Learn how to build an E-Commerce site with Angular 5, a JavaScript framework used by developers to build web, desktop, and mobile applications.

To create a source file named QCLSRC in your ASCENDER library:
crtsrcpf ascender/qclsrc

To retrieve the source for your query into member SERVELEMT:
RTVQMQRY QMQRY(ASCENDER/SERVELEMT)
         SRCFILE(ascender/qclsrc)  
         SRCMBR(servelemt)        
         ALWQRYDFN(*YES)  

Assuming programming tools are installed, to see the list of members in your source file:
WRKMBRPDM ascender/qclsrc
Then to view the source, use option 5 to display it

Barry
 

Author

Commented:
Berry,

Thank you so much,It ran and created the source code.  I put this into strsql, it pulled the data, I am so excited.  I showed others here and they were really surprized, "our guru" kept telling me it could not be done, and he didn't have time to show me how to wrtie a sql statement, he was speechless.  You are my hero!!  

Sara
Thank you for your kind words, Sara. We're here to help!
Barry

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial