Problème de programmation SQL

Résolu
Bonjour,
Quelqu'un peut-il m'aider sur ce prolème ?
Soit une table T comportant 2 colonnes A et B et se présentant ainsi :
A B
v
w 1
w 1
x
x 1
x
y 1
z
z 1
Je voudrais sortir les valeurs de la colonne A pour lesquelles toutes les lignes sont à 1 dans la colonne B, soit dans l'exemple w et y, sachant que le nombre de ligne ayant une même valeur dans A est variable.
Avez-vous une solution ? peut-être avec une requête récursive mais je ne suis pas assez calé en SQL pour celà.
Merci d'avance
Configuration: Windows XP Internet Explorer 6.0

9 réponses

  1. Heu ...
    bizarre ^^

    ben alors SELECT A FROM T WHERE A NOT IN(SELECT A FROM T WHERE( B!='1' OR B IS NULL))
    ^^
    1. Bonjour,
      un truc comme ca devrait marcher
      SELECT A FROM T WHERE A NOT IN(SELECT A FROM T WHERE B!='1')
      1. bonjour

        j'ai pas trop saisie ce que tu veux mais je vais essayé quand meme :)

        select A from table where b='1' group by A;

        Adns
        1. D'après ce que j'ai compris, il voulait récupérer le A quand toutes les occurences de A ont B qui est égal à 1
          Ton GROUP BY marcherait pas : il renverrait le x aussi, or quand A=x, il y a une des occurences qui a un B à vide

          x 1
          x
          1. A en effet j'avais mal compris :S

            la solution est donc la tienne ;)

            SELECT A FROM T WHERE A NOT IN(SELECT A FROM T WHERE B!='1') (jeangilles)

            Adns
            1. Merci jeangilles
              Ca parait effectivement logique comme solution, mais j'ai un pb avec les valeurs NULL dans la colonne B qui apparemment ne sont pas prises en compte par le test != et ressortent donc dans la liste finale.
              1. Hello,

                heu jeangilles, ta requête n'est pas un peu compliquée???

                il suffit de faire :
                SELECT A FROM T WHERE B=1
                1. Ben non ca prendrait tous les A où B = 1, même s'il y a une autre occurence de ce meme A qui a un B != 1

                  Or il veut les A où tous les B correspondant sont égaux à 1
                  1. ok, je n'avais pas bien compris... je croyais qu'il fallait simplement les élèments ou B était également à 1. DSL...