Problema con una consulta

yoymynoe
11 de Junio del 2004
Hola a todos a ver si alguien me puede ayudar con un a consulta que en principio parace facil pero que no da el resultado que espero.Imaginad una tabla con 13 columnas las 7 primeras van de A1 hasta A6 y las restantantes son B1 hasta B7.Pues bien necesito seleccionar todos los registros de la tabla cuyas columnas A esten vacias y alguna de de las columnas B sea igual a un nº llamemosle 'x'.yo he hecho la siguiente consulta
Select * from tabla where A1=" " and A2=" " and A3=" " and A4=" " and A5=" " and A6=" "
hasta aqui la consulta funciona y devuelve los registros correctamente,pero ademas de esto como he dicho antes necesito que me seleccione todos los registros cuyas clomnas de la A1 hasta la A6 =" " y que alguna columna de la B sea='x' y por ello la consulta anterior le añado

Or B1=" x" Or B2=" x" Or B3="x" Or B4="x" Or B5="x" Or B6="x" Or B7="x"

quedando la consulta completa:

Select * from tabla where A1=" " and A2=" " and A3=" " and A4=" " and A5=" " and A6=" " Or B1=" x" Or B2=" x" Or B3="x" Or B4="x" Or B5="x" Or B6="x" Or B7="x"

de esta manera me devuelve todos aquellos registros que tengan alguna B=x y aquellos que tienen todas las A=" " pero tb se me cuelan algunos registros cuyas clomnas A tienen valor y estos no deberian aparecer.Espero haberme explicado y tb espero vuestra ayuda.1saludo :-)

kaliman
11 de Junio del 2004
oks..

Select * from tabla where A1=" " and A2=" " and A3=" " and A4=" " and A5=" " and A6=" " and (B1=" x" Or B2=" x" Or B3="x" Or B4="x" Or B5="x" Or B6="x" Or B7="x")

utiliza esto..

salu2

yoymynoe
11 de Junio del 2004
ok kaliman efectinvamente es asi ya me he dado cuenta pero ahora me ha surgido otro problema.La consulta es la misma pero las columnas B son campos si/no.Entonces
quiero obtener todos los registros cuyas columnas A sean " " y todos aquellos cuya alguna columna B sea si
como deberia hacerlo?
forma 1
Select * from tabla where A1=" " and A2=" " and A3=" " and A4=" " and A5=" " and A6=" " and (B1=true Or B2=true Or B3=true Or B4=true Or B5=true Or B6=true Or B7=true)
si lo pongo asi no me devuelvo ningun registro