SQL

SQL - SQL/NoSQL - Programmation

Marsh Posté le 19-05-2006 à 09:03:12    

Hello,
 
 
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?

Reply

Marsh Posté le 19-05-2006 à 09:03:12   

Reply

Marsh 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?

Reply

Marsh 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.

Reply

Marsh 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

Reply

Marsh 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
 
:??:

Reply

Marsh Posté le 19-05-2006 à 10:50:57    

essaie ca :
 

Code :
  1. select champ1.2,
  2.          case
  3.             when champ1.3 = 'T'
  4.                then champ2.2
  5.             else null
  6.          end,
  7.          champ1.3
  8. from
  9.         table1,
  10.         table2
  11. where
  12.         clé1=clé2


Reply

Marsh 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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed