[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Da hättest du eigentlich einen Fehler bekommen müssen, da der Group By einfach fehlt:

    select tabelle1.nummer, sum(sollkosten), sum(istkosten)
    from tabelle1 left join tabelle2 on tabelle1.nummer=tabelle2.nummer
    group by tabelle1.nummer
    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

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    32
    Danke für die Hilfe. Ich hatte tatsächlich das GOUP BY in meinem Beitrag vergessen. Im Original hatte ich es natürlich drin. Die Lösung ist, dass ich die Istkosten vorher in der WITH Anweisung gruppiere. Korrekt lautet das Statement:
    With a as (select nr, sum(istkosten) as istkosten
    from tabelle2 group by tabelle2.nr)
    select tabelle1.nr, sum(sollkosten), sum(istkosten)
    from tabelle1 left join a on tabelle1.nr=a.nr
    group by tabelle1.nr

    DANKE Euch! :-)

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Das Problem besteht nicht in der obigen Aussage:

    "Problem: Wenn in Tabelle1 ein Satz steht und in Tabelle2 zwei Sätze, dann wird die Summe aus Tabelle1 verdoppelt."

    Hier kann es keine "Verdoppelung" kommen, da dies ja die Regel ist, wenn ich 1 Kopf und n Positionen habe (1:N-Beziehung).
    Dein Problem tritt dann auf, wenn in Tabelle 1 mehr als 1 Satz vorhanden ist. Dann tritt eben die Vervielfältigung ein und erzwingt eben ein getrenntes "Vorverdichten" von Tabelle 1 und 2, was eben einer N:M-Beziehung entspricht.
    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
    Nov 2003
    Beiträge
    2.422
    Naja, wenn man zu jeder der n Positionen den Kopf ermittelt, kann man leicht auf n Köpfe kommen...

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Dann hast du die Tabellen verdreht und eine N:1-Beziehung definiert;-).
    Deshalb gibt es ja auch noch den "Right [outer] Join", der das dann wieder gerade biegt.
    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

  6. #6
    Registriert seit
    Nov 2003
    Beiträge
    2.422
    Wenn man per SQL mit einem SELECT zu einem (1) Kopf seine (N) Positionen dazuliest, sollte man in diesem SELECT besser nicht die Beträge dieses Kopfs aufsummieren...

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.749
    Stimmt, da könnte man MIN/MAX verwenden.
    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

Similar Threads

  1. SQL Ermittlung von Summen über eine nicht verknüpfte Datei/Tabelle
    By MiMarkow in forum NEWSboard Programmierung
    Antworten: 9
    Letzter Beitrag: 17-03-17, 09:39
  2. SQL Texte in unterschiedlicher länge
    By Robi in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-02-17, 12:46
  3. CPYF mit unterschiedlicher Anzahl Felder
    By SabineK in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 24-11-14, 20:18
  4. ein SFLCTL mit mehreren SFL-Records
    By Malte in forum NEWSboard Programmierung
    Antworten: 10
    Letzter Beitrag: 17-10-14, 12:13
  5. NetServer mit mehreren IP's betreiben
    By Starocotes in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 10-11-13, 01:26

Tags for this Thread

Berechtigungen

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