Bedingte Summierung in gruppierter MSSQL-Abfrage
In der OrderDetails-Tabelle von SQL Server verfügt jeder Bestellartikel über eine eindeutige OrderId sowie zugehörige Kosten (CopyCost, FullPrice) und Preistyp (PriceType). Das Ziel besteht darin, eine Übersichtstabelle mit drei Spalten zu erstellen: OrderId, ItemCount, TotalCopyCost und TotalFullPrice, wobei ItemCount die Anzahl der Artikel pro Bestellung, TotalCopyCost die Summe der CopyCost-Werte für jede Bestellung und TotalFullPrice die Summe ist der FullPrice-Werte für jede Bestellung.
Hierfür können Sie eine gruppierte Abfrage mit bedingter Summe verwenden:
<code class="language-sql">SELECT OrderId, COUNT(*) AS ItemCount, SUM(CASE WHEN PriceType = 'CopyCost' THEN Price ELSE 0 END) AS TotalCopyCost, SUM(CASE WHEN PriceType = 'FullPrice' THEN Price ELSE 0 END) AS TotalFullPrice FROM OrderDetails GROUP BY OrderId</code>
In dieser Abfrage:
Durch die Verwendung der bedingten Summierung berechnet die Abfrage effizient die Gesamtkosten und den Gesamtpreis jeder Bestellung und gruppiert die Ergebnisse nach OrderId. Die resultierende Übersichtstabelle bietet einen umfassenden Überblick über die Rohdaten und erleichtert so die Analyse auftragsbezogener Gebühren.
Das obige ist der detaillierte Inhalt vonWie berechnet man bedingte Summen innerhalb einer Group-By-Abfrage in MSSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!