Problème de programmation SQL
Résolu
marino
-
marino -
marino -
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
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
-
Heu ...
bizarre ^^
ben alors SELECT A FROM T WHERE A NOT IN(SELECT A FROM T WHERE( B!='1' OR B IS NULL))
^^ -
Bonjour,
un truc comme ca devrait marcher
SELECT A FROM T WHERE A NOT IN(SELECT A FROM T WHERE B!='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 -
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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. -
Hello,
heu jeangilles, ta requête n'est pas un peu compliquée???
il suffit de faire :SELECT A FROM T WHERE B=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 -