Bonjour!
J'utilise SQL-8!
Je n'ai pas de problème, je voulais juste discuter sur ma méthode pour joindre trois tables! Je m'interrogeais ce matin si j'utilisais la meilleure approche!
Alors voici.
J'ai trois tables avec une clé identique mais évidemment des valeurs bien différentes :
#Tmp1 (période, quantite)
#Tmp2 (période, quantite)
#Tmp3 (période, quantite)
J'ai simplifié ma clé mais elle est composé de trois champs dans les faits réels.
Pour chaque table je peux avoir des quantités pour certaines périodes mais pas toutes. Je ne peux donc pas me baser sur une table en particulier pour faire mes jointures. Parfois, une des tables est même vide. Et voilà, je veux joindre le tout pour ne former qu'une seule table qui permet d'obtenir la sommation des quantités pour chaque période.
Présentement, je le fais avec deux requêtes. Je joins #Tmp1 avec #Tmp2 :
Puis, je joins le résultat de cette requête avec ma table temporaire troisième :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select case when a.periode is null then b.periode else a.periode end as periode, case when a.quantite is null then b.quantite when b.quantite is null then a.quantite else a.quantite + b.quantite end as Quantite into #Tmp12 from #Tmp1 a full join #Tmp2 b on (a.periode = b.periode )
Avez vous d'autres suggestion qui seraient mieux ou plus efficace?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select case when a.periode is null then b.periode else a.periode end as c1per, case when a.quantite is null then b.quantite when b.quantite is null then a.quantite else a.quantite + b.quantite end as Quantite into #TmpFinal from #Tmp12 a full join #Tmp3 b on (a.periode = b.periode )
Merci!
Partager