Maison >base de données >tutoriel mysql >Comment calculer des sommes conditionnelles dans une requête SQL groupée (MSSQL) ?
Utilisation de la sommation conditionnelle dans la requête Group By - MSSQL
Freddie a besoin d'une requête SQL pour résumer les données de la table en fonction de critères spécifiques. La table originale OrderDetails contient quatre colonnes représentant les coûts associés à une commande spécifique (OrderId). L'objectif est de créer un nouveau tableau avec cinq colonnes : OrderId, ItemCount, TotalCopyCost et TotalFullPrice.
Pour obtenir le résultat souhaité, une combinaison d'instructions Group By et CASE est utilisée. Group By est utilisé pour regrouper les données par OrderId, tandis que l'instruction CASE additionne conditionnellement les valeurs CopyCost et FullPrice en fonction de la colonne PriceType :
<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>
Cette requête regroupe efficacement la table OrderDetails par OrderId, compte le nombre d'articles dans chaque groupe et additionne conditionnellement les valeurs CopyCost et FullPrice pour chaque groupe, ce qui donne une nouvelle table avec le schéma souhaité.
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!