Heim >Datenbank >MySQL-Tutorial >Wie kann eine einzelne SQL-Abfrage unterschiedliche Summen basierend auf mehreren WHERE-Klauselbedingungen abrufen?
Verwenden Sie mehrere WHERE-Klauseln, um verschiedene Daten abzurufen
In SQL können Sie die WHERE-Klausel verwenden, um bestimmte Zeilen zu filtern und so anzupassen, wie Daten aus einer Tabelle abgerufen werden. Dieses Problem stellt die Herausforderung dar, zwei verschiedene Datensätze aus derselben Tabelle zu extrahieren, die jeweils eine andere WHERE-Klausel erfüllen.
In der Beispieltabelle „Transaktionen“ werden Datensätze von Finanztransaktionen gespeichert, die durch ihre ID, Konto-ID, Budget-ID, gesammelten Punkte und Transaktionstyp gekennzeichnet sind. Die Aufgabe besteht darin, die Summe der zugewiesenen Punkte und die Summe der ausgegebenen Punkte für jede eindeutige Budget-ID zu berechnen.
Dazu kann eine einzelne SQL-Abfrage erstellt werden, die die notwendigen WHERE-Klauseln kombiniert. Die folgende Abfrage führt zum gewünschten Ergebnis:
<code class="language-sql">SELECT budget_id, SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated, SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued FROM transactions GROUP BY budget_id</code>
Diese Abfrage verwendet die CASE WHEN-Anweisung, um Punkte basierend auf dem Transaktionstyp bedingt zu summieren. Für jede Budget-ID berechnet die Abfrage die Summe der Punkte, die dem Typ „Zuweisung“ zugeordnet sind, und speichert sie in der Spalte „Zugeteilt“. Ebenso berechnet es die Summe der Punkte vom Typ „Issue“ und speichert sie in der Spalte „Issued“. Durch die Gruppierung der Ergebnisse nach Budget-ID erzeugt die Abfrage den erwarteten Ergebnissatz, der separate Spalten für zugewiesene Punkte und ausgegebene Punkte für jedes Budget enthält.
Diese Abfrage demonstriert die Flexibilität von SQL bei der Kombination von WHERE-Klauseln, um bestimmte Teilmengen von Daten aus einer Tabelle abzurufen, was sie zu einem leistungsstarken Werkzeug für die Durchführung komplexer Datenabrufaufgaben macht.
Das obige ist der detaillierte Inhalt vonWie kann eine einzelne SQL-Abfrage unterschiedliche Summen basierend auf mehreren WHERE-Klauselbedingungen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!