Je dois bosser sur un modèle externe non modifiable.
Table1 et Table2 ont une rélation 1:1.
table1 à deux champs, clé1, champ1.2 ET champ1.3, ce dernier est soit vide soit = T.
table2 à deux champs, clé2 et champ2.2
Les tables sont liées par clé1=clé2
Pas de soucis pour ramener ceci :
select champ1.2, champ2.2, champ1.3 from
table1, table2
where clé1=clé2
Exemple de résultat :
En revanche je bloque sur :
Ramener les mêmes lignes que ci dessus MAIS si cette fois le champ1.3 n'est pas égale à T alors on ne ramène pas le champ2.2 (enfin on affiche blanc plutot).
une idée?
Publicité
Posté le 19-05-2006 à 09:03:12
marc90
Posté le 19-05-2006 à 09:20:25
Quant tu dis ne pas ramener le champs 2.2 c'est plutot toute la ligne que tu ne veux pas qui soit affichée?
AGA
La boîte à Bokeh!
Posté le 19-05-2006 à 09:23:24
Hello,
Oui toute la ligne, c'est vrai que je ne me sert que tu champ2.2 à l'affichage.
marc90
Posté le 19-05-2006 à 09:38:58
Tu veux afficher que les lignes ou champs2.2 n'est pas vide.
Dans ce cas là tu mets dans ta requête SELECT .....WHERE.....AND champ2.2<>NULL
AGA
La boîte à Bokeh!
Posté le 19-05-2006 à 10:36:06
Non ce n'est pas ça.
Exemple de résultat avec la RQT1
Toto, Bernard, T
Titi, Jacques, Albert, Gontron, T
Avec la requete deux je voudrais
Toto, Bernard, T (on affiche bernard CAR le champ 3 est à T)
Titi, vide, vide
Albert, Gontron, T
moonboot
Posté le 19-05-2006 à 10:50:57
essaie ca :
Code :
select champ1.2,
case
when champ1.3 = 'T'
then champ2.2
else null
end,
champ1.3
from
table1,
table2
where
clé1=clé2
marc90
Posté le 19-05-2006 à 10:54:05
Dans ce cas là il faut faire
SELECT champ1.2, champ2.2, champ1.3
FROM table1, table2
WHERE cle1=cle2
AND champ1.3 = T
UNION
SELECT champ1.2
FROM table1, table2
WHERE cle1=cle2
AND champ1.3<>T