Tablas de clientes en sql. Seleccionar cliente con características especificadas

Hola,
Te explico: tengo tres tablas: una con clientes, otra con características de estos clientes (del tipo soltero, casado,...) y la que las une (con los campos Cod_Cliente y Cod_Caracteristica).
Es decir, tendríamos registros del tipo CodCliente:1, Cod_Caracteristica:1, CodCliente:1, Cod_Caracteristica:2,...
La pregunta es: ¿Cómo puedo seleccionar un cliente que cumpla cada una de las características que yo especifique?
He probado con SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA=1 AND COD_CARACTERISTICA=2 ... Pero claro, no puede haber en un mismo registro los valores 1 y 2!!!
Por favor, ayúdame. Muchas gracias.
Respuesta
1
Cambia la sentencia por la siguiente:
SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA=1 OR COD_CARACTERISTICA=2
Pero que pasa sin son más características?
SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA IN(1,2,3)
Y después del IN, entre los paréntesis, puedes colocar una lista que quieras, también puedes usar:
SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA >= 1 AND COD_CARACTERISTICA <= 5
e-mail: [email protected]
Hola David,
Muchas gracias por responder tan rápido.
Las soluciones que me propones no funcionan porqué seleccionarán los clientes que cumplan CUALQUIERA de las características.
Yo necesito que seleccione los clientes que cumplan TODAS las características. Por eso no me vale el OR ni el IN, y tampoco especificar intervalos.
Es decir, por ejemplo, yo quiero que me seleccione los clientes que cumplan la característica 1 y la 2. Pero no me sirven los que cumplan la 1 y, a parte, los que cumplan las 2. Tiene que ser las dos o ninguna.
Tiene que haber una manera de hacer lo que pido...
Gracias de antemano
creo que lo que requieres sería una unión de sentencias, algo como lo siguiente;
SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA=1
UNION ALL
SELECT COD_CLIENTE FROM CLIENTECARACTERISTICA WHERE COD_CARACTERISTICA=2
Esto trae en una sola consulta los registros que cumplan con la característica 1 uniendo los registros que cumplan con la característica 2.
e-mail: [email protected]
Hola,
Esto también lo he probado y tampoco ha funcionado. Solo con que una de las dos sentencias se cumpla, ya devuelve el registro. Yo quiero que se cumplan las 2 condiciones o nada. Gracias de todas formas!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas