Heim > Datenbank > MySQL-Tutorial > Warum sind meine SQL-Summenberechnungen falsch, wenn ich mehrere Tabellen kombiniere, und wie kann ich sie mithilfe von Unterabfragen beheben?

Warum sind meine SQL-Summenberechnungen falsch, wenn ich mehrere Tabellen kombiniere, und wie kann ich sie mithilfe von Unterabfragen beheben?

Patricia Arquette
Freigeben: 2024-12-28 19:18:11
Original
564 Leute haben es durchsucht

Why are my SQL sum calculations incorrect when combining multiple tables, and how can I fix them using subqueries?

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]
Nach dem Login kopieren

Erklärung:

  • Die Unterabfragen innerhalb der SUM()-Funktionen berechnen die Summen der „Value“-Einträge aus dem „AP „- und „INV“-Tabellen für jeden eindeutigen „PROJECT“-Wert.
  • Die primäre Abfrage verbindet dann diese Unterabfragen basierend auf auf den übereinstimmenden „PROJEKT“-Werten und aggregiert die Ergebnisse noch einmal, um die endgültige Tabelle zu erstellen.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage