Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: usuani en 9 Marzo 2010, 16:53 pm



Título: Consulta en mysql
Publicado por: usuani en 9 Marzo 2010, 16:53 pm
olaa, estoy realizando la siguiente consulta :
" Obtener el codigo y denominacion, por order alfabetica de denominación, de las piezas del mismo color que alguna de las piezas  con peso 1800gr"

yo hago:

SELECT Denominacion, Codigo
FROM peza
WHERE Cor =  (SELECT Codigo
FROM peza
WHERE Peso = 1800)

y me da el siguiente error:
Truncated incorrect DOUBLE value: 'Blanco ' 

la tabla peza tiene los siguientes campos: Codigo, Denominacion, Peso, Cor Prezo, Dimensions.     ¿Como tendria que hacer la consulta? Saludos y gracias.
     






Título: Re: Consulta en mysql
Publicado por: ^Tifa^ en 9 Marzo 2010, 16:59 pm
Bueno la peticion te dice que ordene el resultado por orden el campo denominacion.

Entonces esto:

Citar
SELECT Denominacion, Codigo
FROM peza
WHERE Cor =  (SELECT Codigo
FROM peza
WHERE Peso = 1800)

No posee un Order By al finalizar consulta.. y

Cor =  (SELECT Codigo
FROM peza
WHERE Peso = 1800)

Cor es un campo numerico o que??? porque estas diciendo WHERE Cor = Codigo??

Cor y Codigo tienen el mismo valor??? Pareciese que el campo Cor almacena caracteres (colores quizas) y el campo Codigo almacena un Numero... no es lo mismo, no podrias igualar esto.

Ahora podrias hacer algo como.

SELECT Denominacion, Codigo FROM peza WHERE Cor IN(SELECT Cor FROM peza WHERE peso = 1800 ) ORDER BY Denominacion;


Utilize la clausula IN por si el color de las piezas que pesan 1800 es mas de uno  ;) de lo contrario si es 1 solo color no uses IN usa =
Asi los resultados se ordenaran por el campo Denominacion de forma Ascendente.


Título: Re: Consulta en mysql
Publicado por: usuani en 9 Marzo 2010, 17:25 pm

Citar
SELECT Denominacion, Codigo FROM peza WHERE Cor IN(SELECT Cor FROM peza WHERE peso = 1800 ) ORDER BY Denominacion
pues si la consulta es correcta, muchas gracias ^TiFa^