Faire pivoter une table dans SQL Server
Cet article explique comment faire pivoter une table dans SQL Server.
Version du produit d’origine : SQL Server
Numéro de la base de connaissances d’origine : 175574
Résumé
Cet article explique comment faire pivoter une table SQL Server. Supposons que vous disposez d’une table nommée QTRSALES
. La table contient les colonnes YEAR
, QUARTER
et AMOUNT
avec les données au format suivant.
Remarque
Il n’y a pas de ligne pour le quatrième trimestre de 1996 :
Year | Trimestre | Montant |
---|---|---|
1995 | 1 | 125,000.90 |
1995 | 2 | 136,000.75 |
1995 | 3 | 212,000.34 |
1995 | 4 | 328,000.82 |
1996 | 3 | 728,000.35 |
1996 | 2 | 422,000.13 |
1996 | 1 | 328,000.82 |
Supposons maintenant que vous souhaitez faire pivoter la table afin de pouvoir voir les données au format suivant :
YEAR | Q1 | T2 | Q3 | Q4 |
---|---|---|---|---|
1995 | 125,000.90 | 136,000.75 | 212,000.34 | 328,000.82 |
1996 | 328,000.82 | 422,000.13 | 728,000.35 | 0.00 |
La requête que vous utiliseriez pour faire pivoter la table figure dans la section suivante de cet article.
Exemple de requête pour faire pivoter la table
Voici la requête que vous utiliseriez pour faire pivoter la table :
SELECT YEAR,
Q1= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 1 AND YEAR =
Q.YEAR),0),
Q2= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 2 AND YEAR =
Q.YEAR),0),
Q3= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 3 AND YEAR =
Q.YEAR),0),
Q4= ISNULL((SELECT AMOUNT FROM QTRSALES WHERE QUARTER = 4 AND YEAR =
Q.YEAR),0)
FROM QTRSALES Q
GROUP BY YEAR
Requête de tables volumineuses
Pour les tables volumineuses, cette requête sera plus rapide :
SELECT YEAR,
SUM(CASE quarter WHEN 1 THEN amount ELSE 0 END) AS Q1,
SUM(CASE quarter WHEN 2 THEN amount ELSE 0 END) AS Q2,
SUM(CASE quarter WHEN 3 THEN amount ELSE 0 END) AS Q3,
SUM(CASE quarter WHEN 4 THEN amount ELSE 0 END) AS Q4
FROM qtrsales q
GROUP BY YEAR
Référence
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour