Somme conditionnelle dans une requête groupée MSSQL
Dans la table OrderDetails de SQL Server, chaque élément de commande a un OrderId unique, ainsi que le coût (CopyCost, FullPrice) et le type de prix (PriceType) associés. L'objectif est de créer un tableau récapitulatif avec trois colonnes : OrderId, ItemCount, TotalCopyCost et TotalFullPrice, où ItemCount est le nombre d'articles par commande, TotalCopyCost est la somme des valeurs CopyCost pour chaque commande et TotalFullPrice est la somme. des valeurs FullPrice pour chaque commande.
Pour cela, vous pouvez utiliser une requête groupée à somme conditionnelle :
<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>
Dans cette requête :
En utilisant la sommation conditionnelle, la requête calcule efficacement le coût total et le prix total de chaque commande et regroupe les résultats par OrderId. Le tableau récapitulatif qui en résulte offre une vue complète des données brutes, facilitant ainsi l'analyse des frais liés aux commandes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!