[NEWSboard IBMi Forum]

Thema: SQL Abfrage

  1. #1
    Registriert seit
    Aug 2008
    Beiträge
    3

    SQL Abfrage

    Hallo,

    ich habe ein Problem mit einer SQL-Anweisung und komme einfach nicht weiter.

    Folgendes soll rauskommen:

    OBERSTOFF
    Oberstoff 1 9999
    Oberstoff 2 9898
    FUTTER
    Futter1 4561 usw.

    Geliefert wird nur Oberstoff1-und2 und Futter1-und 2 und die Farben.

    Die Überschriften müssen erstellt werden und wenn eine Überschrift erstellt wird, dann muss danach noch eine Leerfeld erstellt werden. Anschließend soll dann der Oberstoff oder das Futter erstellt werden.

    Ich habe das ganze mit einer CASE-Anweisung ausprobiert aber es klappt nicht.

    Beispiel:
    case when d.slmtxg between 1 and 2 and c.slmtxg <> 1 and c.slmtxg <> 2 then 'OBERSTOFF'
    when d.slmtxg between 3 and 4 and c.slmtxg <> 3 and c.slmtxg <> 4 then 'FUTTER'
    else a4.tabdta
    end, d.slmafb,

    Habt Ihr eine Idee, wie man das lösen kann? Wäre echt nett.

    Vielen Dank!

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Hallo,

    ich habe im Moment keinen genauen Plan, wie Deine Datei bzw. die Feldinhalte aufgebaut sind.

    Wenn ich davon ausgehe, dass in Spalte 1 Oberstoff oder Futter steht und die Numerierung (1, 2) in einer weiteren Spalte und die Farbe in einer 3. Spalte, kann man mit einer Union-Anweisungen 2 Sub-Selects zusammenmischen und anschließend sortieren.

    Etwa so:
    PHP-Code:
    select Distinct Text' '' '           
      
    from mytable                           
    union all                                
    Select Text
    Char(Nr), Char(Farbe)       
      
    from mytable                           
    order by text

    Das Ergebnis könnte dann wie folgt aussehen:
    PHP-Code:
     TEXT             Konstantenwert  Konstantenwert
    Futter                                         
    Futter            1               5555         
    Futter            2               45679        
    OBERSTOFF                                      
    OBERSTOFF         1               123          
    OBERSTOFF         2               456 
    Birgitta
    Birgitta Hauser

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

  3. #3
    Registriert seit
    Aug 2008
    Beiträge
    3
    Hallo Brigitta,

    ich versuche das ganze mal zu erklären. Wenn ich die ganzen Case-Anweisungen rauslasse, bekomme ich folgendes Angezeigt.

    Firma, FA-Nr, Werk, Matchcode, Lieferant, Modell, Variante, Artikel, Farbe und je nachdem was in dem einen Feld drin steht Oberstoff 1, Farbe, Oberstoff 2, Farbe, Futter 1, Farbe, Futter 2, Farbe usw.

    Für die Felder Oberstoff 1 usw. wird eine extra Tabelle generiert die den Text Oberstoff 1 da raus zieht.

    Soweit geht das auch. Aber ich brauch die zusätzlichen Felder. Wenn da Oberstoff steht dann schreibe Oberstoff aber nur einmal, nicht das ich bei beiden Feldern immer eine Überschrift habe und wenn dann Futter kommt, dann füge eine Überschrift Futter hinzu.

    Ich hoffe es ist jetzt etwas deutlicher geworden.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dann mach das doch so wie Birgitta das vorschlägt.

    An Stelle von "Text" verwendest du deinen Case-Ausdruck.

    Für jedes Feld des 2. Selects benötigst du ein entsprechendes Feld des 1. Selects.
    Birgitta hat da den einfachen Weg gewählt und alles als CHAR gecastet, damit die "Überschriftszeile" rechts auch leer bleibt.

    Du kannst natürlich auch andere Werte angeben:

    select Distinct Text, 0, 0, ...
    from mytable
    union all
    Select Text
    , Nr, Farbe, ...

    from mytable
    order by text
    ,
    2
    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

  5. #5
    Registriert seit
    Aug 2008
    Beiträge
    3
    Hallo,

    okay, ich werde das dann mal versuchen.

    Vielen Dank!

Similar Threads

  1. Einfache Abfrage in COBOL/400 mit EXEC SQL
    By AS400-Anfänger in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 27-06-06, 13:18
  2. Abfrage nach <> Ziffern in SQL
    By behmer in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-05-06, 12:52
  3. sql abfrage
    By steven_r in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 17-05-06, 15:49
  4. Problem bei Abfrage bei Imbedded SQL
    By cbe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 08-06-05, 16:21
  5. sql abfrage mit substring
    By juergenkemeter in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 17-11-04, 14:32

Berechtigungen

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