[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Nov 2003
    Beiträge
    2.427
    Also mir ist noch nicht klar, welche Datensätze aus Datei 3 zum Beispiel zu 100/676/1/1220(min)/1380(max)/4(count) gehören.

  2. #2
    Registriert seit
    Jan 2006
    Beiträge
    112
    Zitat Zitat von Pikachu Beitrag anzeigen
    Also mir ist noch nicht klar, welche Datensätze aus Datei 3 zum Beispiel zu 100/676/1/1220(min)/1380(max)/4(count) gehören.
    Hi Pikachu,

    dass sind die Daten aus Tabelle 2...

    Tabelle 2 zu 3 ist eine 1:1 Verknüpfung
    Tabelle 1 zu 2 ist eine 1:n Verknüpfung

    Gruß
    Bratmaxxe

  3. #3
    Registriert seit
    Nov 2003
    Beiträge
    2.427
    Vielleicht so:
    PHP-Code:
    SELECT   C4RCTX,C4D0NB,C4LFDN,C4TEXT,                                 
             
    B.C5CRNB,B.C5W3NB,B.C5W4NB,B.C5XXTX,                         
             
    C5W4NBMIN,C5W4NBMAX,C5COUNT,I5COUNT                          
    FROM     MYC4REP 
    AS A,                                                
             
    MYC5REP AS B,                                                
            (
    SELECT   C5RCTX,C5D0NB,C5LFDN,                               
                      
    MIN(C5W4NB) AS C5W4NBMIN,                           
                      
    MAX(C5W4NB) AS C5W4NBMAX,                           
                      
    COUNT(*)    AS C5COUNT                              
             FROM     MYC5REP                                             
             GROUP BY C5RCTX
    ,C5D0NB,C5LFDN) AS S                          
    LEFT OUTER JOIN                                                       
            
    (SELECT   I5RCTX,I5D0NB,I5CRNB,I5W3NB,I5W4NB,I5XXTX,          
                      
    COUNT(*) AS I5COUNT                                 
             FROM     MYI5REP                                             
             WHERE    I5NFO1
    ='J'                                          
             
    GROUP BY I5RCTX,I5D0NB,I5CRNB,I5W3NB,I5W4NB,I5XXTX) AS I     
    ON       I5RCTX
    =B.C5RCTX AND I5D0NB=B.C5D0NB AND                      
             
    I5CRNB=B.C5CRNB AND I5W3NB=B.C5W3NB AND                      
             
    I5W4NB=B.C5W4NB AND I5XXTX=B.C5XXTX                          
    WHERE    C4RCTX
    =B.C5RCTX AND C4D0NB=B.C5D0NB AND C4LFDN=B.C5LFDN AND  
             
    C4RCTX=S.C5RCTX AND C4D0NB=S.C5D0NB AND C4LFDN=S.C5LFDN 

  4. #4
    Registriert seit
    Jan 2006
    Beiträge
    112
    Hi,

    danke für die Hilfe !

    Die Abfrage von Birgitta habe ich noch etwas angepasst:

    Code:
    With a as (Select *                                           
                  from MyC4Rep                                    
                  Where C4RCTX = '100' AND C4D0NB = 676),         
                                                                  
         b as (Select C5rctx, c5d0nb, c5lfdn,                     
                      Min(C5W4NB) as Min_cw5nb,                   
                      Max(C5w4nb) as Max_CW5NB,                   
                      Count(*) as Anz_In_Tabelle2                 
                 from MYC5Rep                                     
                 Where C5RCTX = '100' and C5D0NB = 676            
              group by c5RCTX, c5D0NB, c5LFDN),                   
                                                                  
    c as (Select I5RCTX, I5D0NB, C5LFDN AS I5LFDN,                
                      count(*) as Anz3                            
                  from a join MyC5REP on    C4RCTX = C5RCTX       
                                        and C4D0NB = C5D0NB       
                                        and C4LFDN = C5LFDN       
     join mwi5rep    on    C5RCTX = I5RCTX                             
                                        and C5D0NB = I5D0NB            
                                        and C5CRNB = I5CRNB            
                                        and C5W3NB = I5W3NB            
                                        and C5W4NB = I5W4NB            
                                        and C5XXTX = I5XXTX            
                  Where I5NFo1 = 'J'                                   
    group by I5RCTX, I5D0NB, C5LFDN )                                  
    SELECT a.*, Min_Cw5nb, Max_Cw5NB, Anz_in_Tabelle2, anz3            
    FROM   a join b on c4rctx = c5rctx and c4d0nb = c5d0nb             
    and c4lfdn = c5lfdn                                                
    join c on C4rctx = i5rctx and c4d0nb = i5d0nb and c4lfdn = i5lfdn  
    Funktioniert tadellos auf der AS400...

    Allerdings nicht für eine mobile Datenbank (H2Databse) - scheinbar wird dieser Syntax nicht unterstützt...

    SQL Grammar

    Wie kann man das dann trotzdem so hinbiegen, dass die H2 den Ausdruck versteht ?

    Gruß
    Bratmaxxe

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.790
    Wenn CTE's und "from (select ...)" nicht unterstützt werden, hilft nur eine Zerlegeung des SQL's oder ggf. eine View-Erstellung mit der dann gejoint wird.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. SQL Frage
    By Bratmaxxe in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 24-01-07, 20:17
  2. Frage zu SQL UserDefinedFunction
    By cbe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 24-08-06, 18:30
  3. problem mit eigener sql function
    By Stefan_Sk in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 26-05-06, 17:37
  4. SQL Problem
    By Lucky4712 in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-05-06, 16:57
  5. embedded SQL Performance Problem mit SCROLL
    By itec01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 16-09-04, 19:38

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •