[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Aug 2002
    Beiträge
    77

    SUBSTR(Feld,1,1) as .... Wie geht der "richtig"?

    Hallo Forum,
    ich habe eine Tabele mit Spalten A1KDNR und A1NWSU (unter anderem)
    Die SQL Abfrage mache ich mit Prepare
    [code]
    /free
    SqlStmt = '+
    Select SUBSTR(A1KDNR, 1, 1) as Grp, +
    sum (A1NWSU), +
    FROM afa100 +
    WHERE A1RGDT = ? +
    GROUP By A1RGDT, Grp';
    /end-free
    Beim Open kommt dann die Fehlermeldung
    Code:
    Nachrichten-ID . . . . :   SQL0206       Bewertung  . . . . . . :   30       
    Nachrichtenart . . . . :   Diagnose                                          
    Sendedatum . . . . . . :   29.04.04      Sendezeit  . . . . . . :   15:18:31 
                                                                                 
    Nachricht . . . :   Spalte GRP nicht in angegebenen Tabellen.                
    Ursache. . . . . :  GRP ist keine Spalte von Tabelle *N in Bibliothek *N. Ist
      die Tabelle *N, ist GRP keine Spalte einer Tabelle oder Sicht, auf die     
      verwiesen werden kann.                                                     
    Fehlerbeseitigung:  Einen der folgenden Schritte durchführen und die         
      Anforderung wiederholen:                                                   
        -- Sicherstellen, dass die Spalten- und Tabellennamen in der Anweisung   
      korrekt angegeben wurden.                                                  
        -- Handelt es sich um eine Anweisung SELECT, sicherstellen, dass alle    
      erforderlichen Tabellen in der Klausel FROM angegeben wurden.              
        -- Sollte die Spalte ein Korrelationsbezug sein, die Spalte mit der      
      korrekten Tabellenkennzeichnung qualifizieren.
    Wie "definiere" ich denn eine neue Ergebnisspalte für einen Gruppenwechel?
    Danke für alle Antworten!
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    In der Gruppenspalte muss die Funktion wiederholt werden, also

    GROUP By A1RGDT, SUBSTR(A1KDNR, 1, 1)

    Erklärung:
    Das neue Feld "Grp" wird erst bei der Erstellung des Ergebnisses generiert.
    Die Gruppierung kann aber nur auf den Originalfeldern passieren.
    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

  3. #3
    Registriert seit
    Aug 2002
    Beiträge
    77
    Aua, das ist so einfach, dass ich mich beissen könnte...
    Code:
    /free
       SqlStmt = '+
       Select SUBSTR(A1KDNR, 1, 1) as Grp, +
         sum (A1NWSU), +
       FROM afa100 +         
       WHERE A1RGDT = ? +    
       GROUP By A1RGDT, SUBSTR(A1KDNR, 1, 1)';
    /end-free
    funktioniert einwandfrei...
    Sorry für die überflüssige Frage
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

  4. #4
    Registriert seit
    Aug 2002
    Beiträge
    77
    Danke Herr Fuerchau :-)
    Andreas
    ***Wer einen Schreibfehler findet darf ihn behalten***

Similar Threads

  1. Antworten: 3
    Letzter Beitrag: 20-06-08, 06:11
  2. Antworten: 0
    Letzter Beitrag: 05-01-07, 11:32
  3. SQL left join
    By ahingerl in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 08-12-06, 08:28
  4. SQL UDF Function ausführung mit Fehler
    By jakarto in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 24-07-06, 13:41
  5. SQL Select mit SUM aus einer DB
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 30-03-06, 12:33

Berechtigungen

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