Aide requete SQL

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

  • Votes
  • Date
  • Date décroissante
  1. 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 --
    1. 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
      1. salut
        essai ca

        select reference,etat
        from table_nom
        order by reference,etat
        bonne chance
        1. 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
          1. 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.
            1. 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'