Voilà mon souci, soit une table (Pays, Année, CA) pour chaque pays et
pour chaque année j'ai le chiffre d'affaire.
Comment faire une requête qui me donnerait un tableau croisé :
2000 2001 2002 ...
Pays SUM(CA) SUM(CA) SUM(CA) ...
Pour l'instant j'ai fais ça :
SELECT [Pays],
'2003' = CASE [Année] WHEN 2003 THEN SUM([CA]) END,
'2004' = CASE [Année] WHEN 2004 THEN SUM([CA]) END,
'2005' = CASE [Année] WHEN 2005 THEN SUM([CA]) END,
'2006' = CASE [Année] WHEN 2006 THEN SUM([CA]) END,
SUM([CA]) AS 'CA'
FROM [vue_StatVTE]
WHERE ([Année] BETWEEN 2003 AND 2006)
GROUP BY [Pays], [Année]
le cumul sont corrects mais ça me donne une ligne par pays et par année
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stéphane Miqueu
Stéphane Miqueu a émis l'idée suivante :
Bonjour,
Voilà mon souci, soit une table (Pays, Année, CA) pour chaque pays et pour chaque année j'ai le chiffre d'affaire.
Comment faire une requête qui me donnerait un tableau croisé : 2000 2001 2002 ... Pays SUM(CA) SUM(CA) SUM(CA) ...
Pour l'instant j'ai fais ça : SELECT [Pays], '2003' = CASE [Année] WHEN 2003 THEN SUM([CA]) END, '2004' = CASE [Année] WHEN 2004 THEN SUM([CA]) END, '2005' = CASE [Année] WHEN 2005 THEN SUM([CA]) END, '2006' = CASE [Année] WHEN 2006 THEN SUM([CA]) END, SUM([CA]) AS 'CA' FROM [vue_StatVTE] WHERE ([Année] BETWEEN 2003 AND 2006) GROUP BY [Pays], [Année]
le cumul sont corrects mais ça me donne une ligne par pays et par année
Merci de votre aide
Je m'auto-réponds je viens de trouver :
SELECT [Pays], SUM(T1), SUM(T2), SUM(T3), SUM(T4), SUM(CA) FROM ( SELECT [Pays], T1 = CASE [Année] WHEN 2003 THEN SUM([CA]) END, T2 = CASE [Année] WHEN 2004 THEN SUM([CA]) END, T3 = CASE [Année] WHEN 2005 THEN SUM([CA]) END, T4 = CASE [Année] WHEN 2006 THEN SUM([CA]) END, SUM([CA]) AS 'CA' FROM [vue_StatVTE] WHERE ([Année] BETWEEN 2003 AND 2006) GROUP BY [Pays], [Année] ) AS T GROUP BY [Pays]
C'était ce p#@!}# de 'AS T' qui me manquait et je ne comprenais pas le message d'erreur.
-- Ami Calmant Stéphane
Stéphane Miqueu a émis l'idée suivante :
Bonjour,
Voilà mon souci, soit une table (Pays, Année, CA) pour chaque pays et pour
chaque année j'ai le chiffre d'affaire.
Comment faire une requête qui me donnerait un tableau croisé :
2000 2001 2002 ...
Pays SUM(CA) SUM(CA) SUM(CA) ...
Pour l'instant j'ai fais ça :
SELECT [Pays],
'2003' = CASE [Année] WHEN 2003 THEN SUM([CA]) END,
'2004' = CASE [Année] WHEN 2004 THEN SUM([CA]) END,
'2005' = CASE [Année] WHEN 2005 THEN SUM([CA]) END,
'2006' = CASE [Année] WHEN 2006 THEN SUM([CA]) END,
SUM([CA]) AS 'CA'
FROM [vue_StatVTE]
WHERE ([Année] BETWEEN 2003 AND 2006)
GROUP BY [Pays], [Année]
le cumul sont corrects mais ça me donne une ligne par pays et par année
Merci de votre aide
Je m'auto-réponds je viens de trouver :
SELECT [Pays], SUM(T1), SUM(T2), SUM(T3), SUM(T4), SUM(CA)
FROM (
SELECT [Pays],
T1 = CASE [Année] WHEN 2003 THEN SUM([CA]) END,
T2 = CASE [Année] WHEN 2004 THEN SUM([CA]) END,
T3 = CASE [Année] WHEN 2005 THEN SUM([CA]) END,
T4 = CASE [Année] WHEN 2006 THEN SUM([CA]) END,
SUM([CA]) AS 'CA'
FROM [vue_StatVTE]
WHERE ([Année] BETWEEN 2003 AND 2006)
GROUP BY [Pays], [Année]
) AS T
GROUP BY [Pays]
C'était ce p#@!}# de 'AS T' qui me manquait et je ne comprenais pas le
message d'erreur.
Voilà mon souci, soit une table (Pays, Année, CA) pour chaque pays et pour chaque année j'ai le chiffre d'affaire.
Comment faire une requête qui me donnerait un tableau croisé : 2000 2001 2002 ... Pays SUM(CA) SUM(CA) SUM(CA) ...
Pour l'instant j'ai fais ça : SELECT [Pays], '2003' = CASE [Année] WHEN 2003 THEN SUM([CA]) END, '2004' = CASE [Année] WHEN 2004 THEN SUM([CA]) END, '2005' = CASE [Année] WHEN 2005 THEN SUM([CA]) END, '2006' = CASE [Année] WHEN 2006 THEN SUM([CA]) END, SUM([CA]) AS 'CA' FROM [vue_StatVTE] WHERE ([Année] BETWEEN 2003 AND 2006) GROUP BY [Pays], [Année]
le cumul sont corrects mais ça me donne une ligne par pays et par année
Merci de votre aide
Je m'auto-réponds je viens de trouver :
SELECT [Pays], SUM(T1), SUM(T2), SUM(T3), SUM(T4), SUM(CA) FROM ( SELECT [Pays], T1 = CASE [Année] WHEN 2003 THEN SUM([CA]) END, T2 = CASE [Année] WHEN 2004 THEN SUM([CA]) END, T3 = CASE [Année] WHEN 2005 THEN SUM([CA]) END, T4 = CASE [Année] WHEN 2006 THEN SUM([CA]) END, SUM([CA]) AS 'CA' FROM [vue_StatVTE] WHERE ([Année] BETWEEN 2003 AND 2006) GROUP BY [Pays], [Année] ) AS T GROUP BY [Pays]
C'était ce p#@!}# de 'AS T' qui me manquait et je ne comprenais pas le message d'erreur.