Daten aus mehreren Tabellen zur Summierung kombinieren: Falsche Ergebnisse beheben
In Ihrer SQL-Abfrage möchten Sie eine Tabelle mit drei Spalten abrufen : „PROJECT“, „SUM_AP“ und „SUM_INV“. Aufgrund der Gruppierung im Aggregationsprozess sind jedoch falsche Ergebnisse aufgetreten.
Ursache für falsche Ergebnisse:
Die Klausel „GROUP BY“ in Ihrer Abfrage kombiniert Werte basierend auf in der Spalte „AP.[PROJECT]“. Dieser Aggregationsprozess fasst im Wesentlichen doppelte „Wert“-Einträge zusammen, was zu überhöhten Ergebnissen führt.
Lösung: Unterauswahlabfragen verwenden
Um dieses Problem zu beheben, können wir Änderungen vornehmen Ihre Anfrage mithilfe einer Unterauswahl Abfragen:
SELECT AP1.[PROJECT], (SELECT SUM(AP2.Value) FROM AP AS AP2 WHERE AP2.PROJECT = AP1.PROJECT) AS SUM_AP, (SELECT SUM(INV2.Value) FROM INV AS INV2 WHERE INV2.PROJECT = AP1.PROJECT) AS SUM_INV FROM AP AS AP1 INNER JOIN INV AS INV1 ON (AP1.[PROJECT] =INV1.[PROJECT]) WHERE AP1.[PROJECT] = 'XXXXX' GROUP BY AP1.[PROJECT]
Erklärung:
Diese überarbeitete Abfrage stellt sicher, dass nur unterschiedliche „PROJEKT“-Werte gruppiert werden und die Summen korrekt berechnet werden. Bereitstellung des beabsichtigten Ergebnisses.
Das obige ist der detaillierte Inhalt vonWarum sind meine SQL-Summenberechnungen falsch, wenn ich mehrere Tabellen kombiniere, und wie kann ich sie mithilfe von Unterabfragen beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!