MSChamp 10 Geschrieben 18. Oktober 2012 Melden Teilen Geschrieben 18. Oktober 2012 Hallo zusammen, ich bin gerade dabei eine komplexe SQL Abfrage zu schreiben. Diese sieht bis dato wie folgt aus: SELECT t3.PrcName, t1.U_PF Portfolio, t1.U_LS Leistungen, ((SELECT SUM(t0.LineTotal) FROM INV1 t0, OPRJ t1 join "OPRC" t3 on t3.PrcCode = t1.U_VtVerant WHERE t0.Project = t1.PrjCode AND t1.U_PF = 'MB' AND t1.U_LS = 'PRM')-(SELECT SUM(t0.LineTotal) FROM RIN1 t0, OPRJ t1 join "OPRC" t3 on t3.PrcCode = t1.U_VtVerant WHERE t0.Project = t1.PrjCode AND t1.U_PF = 'MB' AND t1.U_LS = 'PRM')) AS Umsatz FROM INV1 t0, OPRJ t1 join "OPRC" t3 on t3.PrcCode = t1.U_VtVerant WHERE t0.Project = t1.PrjCode AND t0.Project = t1.PrjCode AND t1.U_PF = 'MB' AND t1.U_LS = 'PRM' GROUP By t3.PrcName, t1.U_PF, t1.U_LS; Das Problem ist, dass das Ergebnis vom Umsatz nicht stimmt. Da die where Bedingung auf zwei unterschiedliche Personen zutrifft und diese vom Umsatz her zusammengefasst werden. Das Ergebnis sieht dann folgendermaßen aus: PrcName | Portfolio | Leistungen | Umsatz Meier, Stefan | MB | PRM | 45,19 Huber, Markus | MB | PRM | 45,19 Gibt es eine einfache Mölglichkeit, die getrennt voneiander zu betrachten. So dass der Umsatz für den ersten Treffer und dann für den zweiten Treffer errechnet wird und nicht der gleiche Umsatz für beide Treffer ausgegeben wird? Vielleicht ist das auch gar nicht das richtige Forum dafür. Aber ich stelle die Frage mal trotzdem. Über Antworten würde ich mich freuen. Viele Grüße Zitieren Link zu diesem Kommentar
MSChamp 10 Geschrieben 19. Oktober 2012 Autor Melden Teilen Geschrieben 19. Oktober 2012 Viele Hits, aber noch keine Antwort. Gibt es jem. der sich in der Materie so gut auskennt, dass er mir weiterhelfen könnte. Beziehungsweise, wenn noch zusätzliche Informationen von Nöten sind, lasst es mich wissen. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 19. Oktober 2012 Melden Teilen Geschrieben 19. Oktober 2012 Die Query ist leider schwer zu lesen. Und ohne Kenntnis des Datenmodells kann man so nur schwer helfen. Vielleicht formulierst Du Dein SQL-Frage etwas einfacher ? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 19. Oktober 2012 Melden Teilen Geschrieben 19. Oktober 2012 Von weitem würde ich sagen, Du musst die Selects, wo Du die Summen bildest, als Unterabfragen einbinden, also nach dem FROM. So etwa (ungetestet): SELECT t3.PrcName, t1.U_PF Portfolio, t1.U_LS Leistungen, t4.Umsatz FROM INV1 t0, OPRJ t1 join "OPRC" t3 on t3.PrcCode = t1.U_VtVerant join (SELECT Sum(...), PrcCode FROM... GROUP BY PrcCode) t4 on t3.PrcCode = t4.PrcCode WHERE ... GROUP BY ... Zitieren Link zu diesem Kommentar
MSChamp 10 Geschrieben 19. Oktober 2012 Autor Melden Teilen Geschrieben 19. Oktober 2012 Danke für Deine Antwort Cybquest. Ich werde das mal versuchen und dann schreiben wie der Stand ist. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.