OVH Cloud OVH Cloud

table croisée

2 réponses
Avatar
JeanP
Bonjour,
Je dois présenter le résultat d'une requête sous la forme d'une table
croisée.
Voilà comment je fais :
SELECT DISTINCT A.champ1, A.champ2, (SELECT SUM(B.champ4)
FROM
Table1 B
WHERE
B.champ1 = A.champ1

AND B.champ2 = A.champ2

AND B.champ3 = 1
) Tot
1,

(SELECT SUM(B.champ4)

FROM Table1 B

WHERE......... pour chaque mois de l'année.......)
FROM Table1 A
where .......

Ca marche, mais le temps de traitement augmente avec le nombre de
sous-requêtes et ce n'est pas simple à gérer.
Y a t-il une autre méthode pour créer ce type de requête ?
Merci à tous.
Jean

2 réponses

Avatar
bruno reiter [MVP]
sans doute une jointure et un group by

br

"JeanP" wrote in message
news:3fbdf8e7$0$21195$
Bonjour,
Je dois présenter le résultat d'une requête sous la forme d'une table
croisée.
Voilà comment je fais :
SELECT DISTINCT A.champ1, A.champ2, (SELECT SUM(B.champ4)
FROM
Table1 B
WHERE
B.champ1 = A.champ1

AND B.champ2 = A.champ2

AND B.champ3 = 1
) Tot
1,

(SELECT SUM(B.champ4)

FROM Table1 B

WHERE......... pour chaque mois de l'année.......)
FROM Table1 A
where .......

Ca marche, mais le temps de traitement augmente avec le nombre de
sous-requêtes et ce n'est pas simple à gérer.
Y a t-il une autre méthode pour créer ce type de requête ?
Merci à tous.
Jean







Avatar
jmn
Recherchez 'Rapports de tables croisées' dans la doc en ligne de SQL server
2000.