duda SQL

04/07/2003 - 10:58 por Enrique Cebrián Lozano | Informe spam
Una pregunta que seguro que alguno me podra resolver

tengo una tabla con las siguientes caracteristicas

articulo caracteristica valor
1 1 80
1 2 100
1 3 120

si le paso una clausula como select * from articulo where idcaracteristica=1
and valor€ and idcaracteristica=2 and valor0 no devuelve ningun
registro.

Entiendo pq no devuelve ninguno, el problema es que no me selecciona ninguno
pq hay en la clausula dos idcaracteristica y se excluyen ambas.

Pero como podria hacer para que yo pudiera decirle a esta tabla mediante sql
que me seleccionara los registros cuya caracteristica 1 fuera igual a 80 y
caracteristica 2 fuera igual a 100?

¿Mediante agrupación?, algun ejemplo practico?

No se si he conseguido explicarme pero seguro que me podreis ayudar.

Un saludo y gracias anticipadas.

Preguntas similare

Leer las respuestas

#1 Fatima
04/07/2003 - 11:10 | Informe spam
Te vale

select *
from articulo
where (idcaracteristica=1 and valor€) OR
(idcaracteristica=2 and valor0 )
Respuesta Responder a este mensaje
#2 Diego Garcia
04/07/2003 - 11:15 | Informe spam
Tan sencillo como:

select * from articulo where (idcaracteristica=1 and valor€) OR
(idcaracteristica=2 and valor0)

Saludos.


"Enrique Cebrián Lozano" escribió en el mensaje
news:#$y#
Una pregunta que seguro que alguno me podra resolver

tengo una tabla con las siguientes caracteristicas

articulo caracteristica valor
1 1 80
1 2 100
1 3 120

si le paso una clausula como select * from articulo where


idcaracteristica=1
and valor€ and idcaracteristica=2 and valor0 no devuelve ningun
registro.

Entiendo pq no devuelve ninguno, el problema es que no me selecciona


ninguno
pq hay en la clausula dos idcaracteristica y se excluyen ambas.

Pero como podria hacer para que yo pudiera decirle a esta tabla mediante


sql
que me seleccionara los registros cuya caracteristica 1 fuera igual a 80 y
caracteristica 2 fuera igual a 100?

¿Mediante agrupación?, algun ejemplo practico?

No se si he conseguido explicarme pero seguro que me podreis ayudar.

Un saludo y gracias anticipadas.


Respuesta Responder a este mensaje
#3 Enrique Cebrián Lozano
04/07/2003 - 11:21 | Informe spam
Gracias fatima por tu respuesta pero no me sirve, el problema es que con
esta clausula me devuelve resultados si alguna de las dos se cumple pero yo
necesito que se cumplan todas. El problema de usar OR es que si la
caracteristica 1 tiene el valor 80 me la muestra aunque no cumpla la
caracteristica 2, se me ocurre hacer una seleccion y dentro de esta
seleccion otra pero no se como se hace por ejemplo
select * from idcaracteristica=1 and valor€

esta clausula me devuelve una serie de resultados.

pues a partir de estos resultados ejecutar la segunda condicion

idcaracteristica=2 and valor0

se que en SQL se puede hacer pero no se como, si alguien me puede ayudar
estare enormemente agradecido :-)

Gracias.
Te vale

select *
from articulo
where (idcaracteristica=1 and valor€) OR
(idcaracteristica=2 and valor0 )


Respuesta Responder a este mensaje
#4 Antonio Liberal
04/07/2003 - 11:30 | Informe spam
¿Te sirve esto?

select * from articulo
where codigo in
(
select f1.codigo
from
(select * from articulo where (idcaracteristica=1 and valor€)) f1,
(select * from articulo where (idcaracteristica=2 and valor0)) f2
where f1.codigo = f2.codigo
)

"Enrique Cebrián Lozano" escribió en el mensaje
news:
Gracias fatima por tu respuesta pero no me sirve, el problema es que con
esta clausula me devuelve resultados si alguna de las dos se cumple pero


yo
necesito que se cumplan todas. El problema de usar OR es que si la
caracteristica 1 tiene el valor 80 me la muestra aunque no cumpla la
caracteristica 2, se me ocurre hacer una seleccion y dentro de esta
seleccion otra pero no se como se hace por ejemplo
select * from idcaracteristica=1 and valor€

esta clausula me devuelve una serie de resultados.

pues a partir de estos resultados ejecutar la segunda condicion

idcaracteristica=2 and valor0

se que en SQL se puede hacer pero no se como, si alguien me puede ayudar
estare enormemente agradecido :-)

Gracias.
> Te vale
>
> select *
> from articulo
> where (idcaracteristica=1 and valor€) OR
> (idcaracteristica=2 and valor0 )
>
>




Respuesta Responder a este mensaje
#5 Fatima
04/07/2003 - 11:34 | Informe spam
Y q tal esto?

select *
from articulo
where (idcaracteristica=1) and (valor€) and
(articulo in (select *
from articulo
where (idcaracteristica=2 and valor0 )))
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida