Consulta en mysql

Iniciado por usuani, 9 Marzo 2010, 16:53 PM

0 Miembros y 1 Visitante están viendo este tema.

usuani

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.
     





^Tifa^

#1
Bueno la peticion te dice que ordene el resultado por orden el campo denominacion.

Entonces esto:

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

usuani


CitarSELECT 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^