wilmau Geschrieben 11. Januar 2005 Teilen Geschrieben 11. Januar 2005 sql - brauche dringend hilfe :bimei dieser Befehl soll felder berechnen und diese mit der Tabelle auftraege anzeigen die berechnung für Sollkosten ist aber falsch, da er drei tabellen zusammenschmeißt und dann erst die einzelnen Felder berechnet und weil in der tabelle dienstleistungserfassung mehrere auftragsnummern sind, kommt eine auftragsnummer in der zusammengeschmißenen Tabelle auch mehrmahls. Dadurch werden einige Felder mehrmals summiert, was zu einem falschem Ergebniss führt! hier mein Sql-Befehl SELECT auftraege.auftragsnr, sum(auftragspositionen.vkpreis) as Auftragswert, sum(auftragspositionen.gepl_menge*auftragspositionen.gepl_einzelkosten) as Sollkosten, sum(dienstleistungserfassung.menge*dienstleistungserfassung.kostenproeinheit) as Istkosten FROM auftraege LEFT JOIN auftragspositionen ON (auftraege.auftragsnr = auftragspositionen.fk_auftragsnr) LEFT JOIN dienstleistungserfassung ON (auftragspositionen.fk_auftragsnr = dienstleistungserfassung.fk_auftragsnr) WHERE auftraege.auftragsnr = 20040022 GROUP BY auftragspositionen.fk_auftragsnr Danke! :marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 11. Januar 2005 Teilen Geschrieben 11. Januar 2005 rechne die soll- und istkosten pro auftrag getrennt (unter oracle per inline-view möglich) und führe dann die summen zusammen. ist in einem statement machbar. wenn dein dbms keine inline-views kennt, versuchs mit subselects. -j Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
wilmau Geschrieben 12. Januar 2005 Autor Teilen Geschrieben 12. Januar 2005 :marine :marine :marine super, das war der Haken, jetzt funkioniert es auch. Danke. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.