[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jul 2012
    Beiträge
    5
    Hallo Michael,

    an die Where Bedingung kann es eigentlich nicht liegen. Wenn ich das SQL-Statement im Dialog ohne into Aufrufe erhalte ich das korrekte Ergebnis angezeigt. Oder verhält sich Select sum() into :var1 where ... anders.

    Gruss

    RoRa

  2. #2
    Registriert seit
    Dec 2011
    Beiträge
    11
    Bei der SUM-Funktion ist es möglich, dass das Ergebnis ein NULL-Wert ist, deshalb muss entweder in der Abfrage sichergestellt werden, dass kein NULL zurückgegeben wird (bspw. NULL duch den Wert 0 ersetzen)
    Code:
    SELECT coalesce(sum(...), 0) INTO :var1 FROM ...
    oder es muss eine Indikatorvariable angelegt werden (5I 0) und folgendermaßen angegeben werden:
    Code:
    SELECT sum(...) INTO :var1 :indicator1 FROM ...
    in indicator1 steht dann der Wert 1 wenn bei der SUM-Funktion NULL zurückgegeben wurde, sonst 0

    Gruss
    Klaus

  3. #3
    Registriert seit
    Jan 2001
    Beiträge
    851
    Hallo,

    wenn der SQLCode 811 angezeigt wird,
    dann ist mehr als eine Ergebniszeile im Spiel.

    Auf jeden Fall nochmal prüfen.
    ( Bibliotheksliste ? )
    Gruß
    Michael

  4. #4
    Registriert seit
    Aug 2001
    Beiträge
    2.934
    Ohne das SQL Select ... into - Statement wirklich zu sehen, können wir uns hier nur etwas zusammenraten.

    Wie Michael schon sagte SQLCODE -811 besagt, dass mehr als 1 Datensatz ausgegeben wurde.

    Mehrere Datensätze werden bei der Verwendung von Aggregat-Funktionen nur dann ausgegeben, wenn in dem SQL Statement eine Group By-Anweisung angegeben wurde.

    Das folgende Beispiel bringt nur einen Datensatz zurück:

    Code:
    Select Sum(Wert) 
    From Umsatz 
    Where KundeNr = '4711';
    Ebenso das nächste SQL Statement:
    Code:
    Select Sum(Wert)
    From Umsatz
    Where KundeNr = '4711'
    Group By KundeNr;
    Das nächste Statement bringt mehrere Datensätze (einen für jeden Kunden der ArtikelNr '12345' geordert hatte) zurück:
    Code:
    Select Sum(Wert)
    From Umsatz
    Where ArtikelNr = '12345'
    Group By KundeNr;
    Sofern es nicht die Group By-Anweisung ist, ist alles weitere ohne das SQL-Statement zu kennen nur Spekulation.

    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

Similar Threads

  1. SQLcode -811, SQLstate 21000
    By deni87991 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 26-10-06, 11:35
  2. CREATE FUNCTION mit select im Bauch ?
    By cheffe1008 in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 21-09-06, 17:05
  3. Cobol-Programm mit Embedded SQL (SELECT CASE)
    By klausgkv in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 08-06-06, 14:47
  4. SQL Select mit SUM aus einer DB
    By JonnyRico in forum NEWSboard Programmierung
    Antworten: 14
    Letzter Beitrag: 30-03-06, 13:33
  5. SQL Select into
    By alexander may in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 30-03-05, 15:56

Berechtigungen

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