[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Dec 2003
    Beiträge
    106
    Hallo Birgitta,

    eine kurze Erklärung zum SQL wäre nicht schlecht.
    danke. sim

    Zitat Zitat von B.Hauser
    Hallo Sim,

    so ganz einfach ist das nicht!
    Es gibt keine Funktion, die einfach eingebunden werden kann.
    Die relative Satz-Nr. liefert zwar eine eindeutige Kennung, ist jedoch nicht unbedingt fortlaufend.

    Das heisst jedoch nicht, dass es nicht möglich ist.
    Wenn ich mich mit Deinen Feld- und Datei-Namen nicht verschrieben habe, sollte das folgende SQL-Statement funktionnieren:
    PHP-Code:
    with x as (select  count(*) as Anz, ABRABRTEXT as Text  
                  from ABRECHVGL a  join KBELEG b           
                    on     a
    .ABRKBEKY = KBELFDNR            
                 where KBEWANR 
    = 18800 and KBEVNR = 1       
                 group by ABRABRTEXT
    ),                  
         
    y as (select  Anz as yAnz, Text as yText,          
                       
    digits(Anz) concat Text as yKey      
                  from x
    ),                                  
         
    z as (select  Anz as zAnz, Text as zText,          
                       
    digits(Anz) concat Text as zKey      
                  from x
    )                                   
    select yAnz, yText, count(zKey) as Zaehler              
      from y  inner join z                                  
        on yKey 
    >= zKey                                     
      group by yAnz
    , yText 
    Vielleicht gibt es ja noch einfachere Lösungen

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.981
    Zitat Zitat von sim
    Hallo Birgitta,

    eine kurze Erklärung zum SQL wäre nicht schlecht.
    danke. sim
    Ein komplettes Select-Statement besteht aus zwei Teilen:
    1. Common Table Expressions (With ...)
    2. Fullselect --> das eigentliche Select-Statement

    Common Table Expressions (CTE) ermöglichen einem komplexe SQL-Statements besser zu strukturieren. Mit CTEs können temporäre Views, die nur für dieses eine Select-Statement gelten definiert werden. Wie bei anderen Views können auch diese temporären Views in weiteren temporären Views verwendet werden.

    In meinem Beispiel habe ich Dein ursprüngliches Select-Statement als CTE definiert, um das Ergebnis mit neuen Feld-Namen einfacher verwenden zu können.
    Anschliessend habe ich aus dieser CTE zwei weitere Views mit dem selben Aufbau und einem zusätzlichen Schlüssel-Feld, das für die folgenden Verknüpfungen erforderlich ist, definiert.

    Nun zum eigentlichen Select-Statement. Hier wird die Original-Abfrage mit sich selbst verknüpft. Durch die >= Verknüpfung wird jeweils nur die Anzahl der Zeilen bis zum entsprechenden Schlüssel-Wert ermittelt.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 6. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  4. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43
  5. embedded SQL, Satz geschützt
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 01-12-05, 18:12

Berechtigungen

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