[SQL] Requète SQL complexe

Requète SQL complexe [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 26-07-2011 à 15:04:48    

Salut à tous,

 

Je vous explique mon soucis :

 

Ma table est de la forme suivante :

 

REF  |Name                | Numero du champs | Valeur du champs

 

1   |Version logiciel    |     100                 |  Version 1
 1   |Version voulue      |     150                 |  Version 1
 2   |Version logiciel    |     100                 |  Version 2
 2   |Version voulue      |     150                 |  Version 3
 3   |Version logiciel    |     100                 |  Version 4
 3   |Version voulue      |     150                 |  Version 4

 

Je veux sélectionner dans cette table, tous les numéros de REF, dont la version du logiciel et la version voulue sont identiques.

 

Donc avec cet exemple : les REF 1 et 3.

 

Je pensais à ça, mais ça n'a pas put aboutir :

 
Code :
  1. SELECT REF
  2. FROM table
  3. WHERE numero_de_champs='100' and valeurs_du_champs= ( SELECT valeurs_du_champs FROM table WHERE numero_de_champs='150' and ref=...)
 

J'ai essayé de retourner le problème dans tous les sens, mais je dois dire que je ne trouve pas.

 

Avez vous une idée de la démarche à suivre ?

 

Merci d'avance.


Message édité par kheil le 26-07-2011 à 15:35:29
Reply

Marsh Posté le 26-07-2011 à 15:04:48   

Reply

Marsh Posté le 26-07-2011 à 15:45:07    

Je viens de penser à ca :
 

Code :
  1. SELECT REF, valeur champs
  2. FROM table
  3. WHERE numero_champs='100'
  4. INTERSECT
  5. SELECT REF, valeur champs
  6. FROM table
  7. WHERE numero_champs='150'


 
Ca pourrait aller ou c'est sur que non ? ( J'évite de lancer tout de suite la requète vu que la base est assez enorme)

Reply

Marsh Posté le 26-07-2011 à 16:07:55    

Réponse trouvée sur le forum du siteduzero par le membre Tracker :
 

Code :
  1. select _1.ref
  2. from   table _1
  3.        inner join table _2
  4.          on  _1.ref = _2.ref
  5.          and _1.numero_de_champs = 100
  6.          and _2.numero_de_champs = 150
  7.          and _1.valeurs_du_champs = _2.valeurs_du_champs


 
Merci grandement à lui !

Reply

Marsh Posté le 26-07-2011 à 21:02:51    

t'as plus qu'a changer le titre en le changeant par "requete SQL simple" :op

Reply

Sujets relatifs:

Leave a Replay

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