Aide requete SQL

GYo -  
 GYo -
Bonjour,
je debute en langage sql et j’ai rencontrer un problème de requêtes. J’aimerais effectuer un tri de ce genre :

[URL=https://imageshack.com/][IMG]http://img178.imageshack.us/img178/1815/imaqs2.th.png[/IMG][/URL]

Cependant je n’arrive pas à ecrire sa requêtes. J’ai essayer :SELECT reference, etat
FROM table
WHERE etat=’X ‘
AND etat=’y’

Mais cela ne correspond pas à ce que je cherche puisqu’il selectionne tout les x et les y.
Merci d’avance pour les aides.
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Dr Zoidberg Messages postés 547 Statut Membre 100
     
    Salut,
    Peut-être :
     
    SELECT t1.reference, t1.etat 
    FROM table t1, table t2
    WHERE 
    t1.reference = t2.reference
    AND t1.etat='X' AND t2.etat='Y'
    
    0
  2. antares66
     
    Bonjour

    Essaye ceci :

    select reference,etat from table
    where reference in (select reference from table where etat = 'X') AND
    reference in (select reference from table where etat = 'Y')

    Bonne journée.
    0
  3. GYo
     
    J'ai testé les 2 méthodes,
    dans la première je suis obligé de créer une 2eme table pour que la requête fonctionne, mais cela ne correspond pas à ce que j'attend car elle n'affiche que l'etat 'X' (je souhaiterai qu'elle affiche aussi l'etat 'Y') elle a cependant bien fait le tri.
    La deuxieme hélas ne fonctionne pas car il y a une erreur de syntaxe
    0
  4. je veux apprendre VB
     
    salut
    essai ca

    select reference,etat
    from table_nom
    order by reference,etat
    bonne chance
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. je veux apprendre VB
     
    ah j avais oblier la condition
    il faut taper
    select reference,etat
    from table_name t1;t2
    where t1.reference=t2.reference
    order by reference,etat
    et c'est tout
    0
  7. hotrod
     
    SELECT a.REFERENCE, a.ETAT
    FROM TABLE a
    WHERE a.ETAT = 'X'
    AND EXISTS (SELECT * FROM TABLE b WHERE a.REFERENCE = b.REFERENCE AND b.ETAT = 'Y')
    UNION
    SELECT c.REFERENCE, c.ETAT
    FROM TABLE c
    WHERE c.ETAT = 'Y'
    AND EXISTS (SELECT * FROM TABLE d WHERE c.REFERENCE = d.REFERENCE AND d.ETAT = 'X')
    ORDER BY REFERENCE, ETAT
    ;

    CQFD -- a noter que tu n'utilises qu'une table. Ne t'amuses pas à en créer plusieurs --
    0