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

#6 Enrique Cebrián Lozano
04/07/2003 - 11:59 | Informe spam
Gracias Fatima :-) eres un sol, ahora mismo estoy probando lo que me dices
aunque tiene pinta de que es eso lo que busco, un saludo, gracias y en
cuanto sepa algo te lo digo.

Gracias.

"Fatima" escribió en el mensaje
news:e#yEp$
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
#7 Enrique Cebrián Lozano
04/07/2003 - 12:20 | Informe spam
Fatima, una ultima ayuda por favor

paso esta consulta

SELECT idarticulo FROM articarac where idcaracteristica='000003' and
articarac.valor >40 and articarac in (select * from articarac where
articarac.idcaracteristica='000011' and articarac.valor >15) order by
idarticulo

la tabla se llama articarac y es donde estan los campos idarticulo,
idcaracteristica y valor, en teoria pienso yo que debe funcionar bien pero
me da el siguiente error.

error 3306 ha escrito una subconsulta que puede devolver mas de un campo sin
utilizar la palabra reservada EXISTS en la clausula FROM de la consulta
principal , corrija la instruccion SELECT de la subconsulta para solicitar
un único campo.

He mirado la ayuda y en el apartado subconsultas SQL del motor de base de
datos JET viene la explicación pero no consigo corregir el error, sabes que
puede estar mal?

Gracias por todo y perdona las molestias.

"Fatima" escribió en el mensaje
news:e#yEp$
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
#8 Plimboi
04/07/2003 - 12:46 | Informe spam
SELECT idarticulo FROM articarac where idcaracteristica='000003' and
articarac.valor >40 and ""articarac"" in (select * from articarac where


^^^^^^^^
articarac.idcaracteristica='000011' and articarac.valor >15) order by
idarticulo




si articarac es una tabla, creo que el problema está en la condición del
primer Where, creo que te fata poner "articarac.valor" (lo he marcado entre
dobles comillas arriba, y con flechitas). Además, el subselect devolverá más
de un campo, y para que no de error debería devolver un sólo campo (y uno o
más registros). Prueba a poner en el subselect: "select valor from
articaract where ..."

Espero que esto resuelva tu problema.

saludos.
Respuesta Responder a este mensaje
#9 Alexis Romero M.
04/07/2003 - 16:34 | Informe spam
Intenta esto

select *
from articulo
where idcaracteristica in ("1","22")
and valor in ("80","100")

" Si no te sirve las " intenta con `

Suerte !


"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.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida