[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Apr 2011
    Beiträge
    29

    SQL: SUM über UNION

    Hallo zusammen,

    ich habe folgendes Konstrukt:
    SELECT KNR, sum(Zahl1), sum(Zahl2)
    FROM (
    (SELECT KNR, 0 as Zahl1, count(*) as Zahl2...)
    UNION ALL
    (SELECT KNR, count(*) as Zahl1, 0 as Zahl2...)
    )
    GROUP BY KNR

    Wenn ich nur das Statement in den Klammern ausführe funktioniert es. Das gesamte Statement aber nicht, es kommt immer SQL-Error 37000. Ich finde aber den Syntaxfehler nicht.
    Hat jemand eine Idee? Ich hab auch schon versucht einen Alias über die Union zu vergeben, das ändert aber nix am Fehler.

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Gib dem FROM (...) mal einen Namen mit AS IRGENDWAS vor dem GROUP BY.

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Da sind gleich mehrere Fehler auf einmal:

    Sobald Aggregate verwendet werden ist ein "group by" erforderlich.
    Eine "derived Table" beginnt nicht mit einer eigenen Klammer und muss einen Namen bekommen.

    Richtig ist also:

    SELECT KNR, sum(Zahl1), sum(Zahl2)
    FROM (
    SELECT KNR, sum(0) as Zahl1, count(*) as Zahl2...
    group by KNR
    UNION ALL
    SELECT KNR, count(*) as Zahl1, sum(0) as Zahl2...
    group by KNR
    ) as MyTable
    GROUP BY KNR
    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

  4. #4
    Registriert seit
    Apr 2011
    Beiträge
    29
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Da sind gleich mehrere Fehler auf einmal:
    Sobald Aggregate verwendet werden ist ein "group by" erforderlich.
    Eine "derived Table" beginnt nicht mit einer eigenen Klammer und muss einen Namen bekommen.
    Das GROUP BY steht jeweils schon drin, ich hab's nur weg gelassen damit es lesbarer wird. Die Klammern sind so gesetzt weil die subselects jeweils wieder subselects verwenden - aber ich habe jetzt meinen Fehler gefunden, es war tatsächlich einfach die Bechstaben verwuchselt ;-)

Similar Threads

  1. SQL: SUM Felder zu lang
    By linguin in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 16-06-08, 13:11
  2. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  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. 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
  •