elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Consulta en Mysql [solucionado]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Consulta en Mysql [solucionado]  (Leído 6,616 veces)
bewa

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Consulta en Mysql [solucionado]
« en: 5 Abril 2012, 12:52 pm »

Vuelvo con mi particular batalla con mysql xD

Esta vez parece facilita y sólo hay que coger datos de una tabla pero no me sale.
La tabla es esta:


Hay que obtener los precios máximos por tipo de producto (descripción) con los siguientes datos: codprod, descripcion, preciomax

Yo he hecho esto:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
GROUP BY DESCRIPCION
;

Y me da como resultado:



Los codprod no me coinciden. Me tendría que salir algo como:





« Última modificación: 5 Abril 2012, 14:25 pm por bewa » En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Consulta en Mysql
« Respuesta #1 en: 5 Abril 2012, 12:59 pm »

Vuelvo con mi particular batalla con mysql xD

Esta vez parece facilita y sólo hay que coger datos de una tabla pero no me sale.
La tabla es esta:


Hay que obtener los precios máximos por tipo de producto (descripción) con los siguientes datos: codprod, descripcion, preciomax

Yo he hecho esto:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
GROUP BY DESCRIPCION
;

Y me da como resultado:



Los codprod no me coinciden. Me tendría que salir algo como:





Si no me equivoco es porque los ordenas por descripcion y no por codprod,
prueba así:

Código
  1. SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX FROM PRODUCTOS GROUP BY CODPROD;
  2.  


En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
bewa

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Consulta en Mysql
« Respuesta #2 en: 5 Abril 2012, 13:08 pm »

Nop, porque el precio máximo de un producto sólo es uno. Tengo que coger los productos de mayor precio por tipo (descripcion). Si lo hago así me sale:

« Última modificación: 5 Abril 2012, 13:10 pm por bewa » En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Consulta en Mysql
« Respuesta #3 en: 5 Abril 2012, 13:31 pm »

Nop, porque el precio máximo de un producto sólo es uno. Tengo que coger los productos de mayor precio por tipo (descripcion). Si lo hago así me sale:



Creo que ya se cual puede ser el problema.
Al realizar esa consulta, toma como descripcion la primera ocurrencia de la descripcion con el precio máximo.
Es decir, si por ejemplo una descripcion es "tele" , hay más con el mismo nombre y una de todas presenta un precio mayor a las de su mismo nombre, tomará como ID del producto, la primera ocurrencia en la tabla.

He implementado tu misma tabla con los mismos registros en mi Pc, y he insertado una descripcion "mesa1" (nombre diferente a mesa") con codprod 11.
He realizado tu misma consulta y el resultado del codprod de la descripcion "cama1" ha sido el correcto, 11.

Así que, por el momento, creo que te va a tocar cambiar la descripcion de cada una de ellas,
mesa1,mesa2,mesa3...



Así te funcionará con esa consulta.

Un saludo bewa :)
« Última modificación: 5 Abril 2012, 13:37 pm por Runex » En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
bewa

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Consulta en Mysql
« Respuesta #4 en: 5 Abril 2012, 13:37 pm »

Ese el el problema, que coge los 4 primeros codprod y no los que tiene que coger. Pero las descripciones no las puedo cambiar porque está puesto así a mala leche digamos xD.

Un saludo Runex y gracias!!
En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Consulta en Mysql
« Respuesta #5 en: 5 Abril 2012, 13:40 pm »

Si lo que quieres es que quede igual que la imágen y es por un ejercicio o algo puedes hacerles trampa.

Pon varios registro mesa,mesa1,mesa2,cama,cama1,cama2 etc.

Y pones el precio mayor a mesa,cama...

Quedará igual que la imágen te lo aseguro jaja :D.

Un saludo bewa y de nada para eso estamos, si se me ocurre algo más te lo digo :)
En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
bewa

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Consulta en Mysql
« Respuesta #6 en: 5 Abril 2012, 14:16 pm »

Madre mía. ¿He dicho que parecía facilita? lo retiro xD

La he sacado y todavía como que no termino de asimilar del todo.

La solución es ésta:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
WHERE CODPROD IN(SELECT CODPROD FROM PRODUCTOS
WHERE PVP IN (SELECT MAX(PVP) FROM PRODUCTOS
GROUP BY DESCRIPCION)
)
GROUP BY DESCRIPCION
;
En línea

Runex

Desconectado Desconectado

Mensajes: 192


http://tutogramacion.blogspot.com


Ver Perfil WWW
Re: Consulta en Mysql [solucionado]
« Respuesta #7 en: 6 Abril 2012, 15:57 pm »

Madre mía. ¿He dicho que parecía facilita? lo retiro xD

La he sacado y todavía como que no termino de asimilar del todo.

La solución es ésta:

SELECT CODPROD, DESCRIPCION, MAX(PVP) AS PRECIOMAX
FROM PRODUCTOS
WHERE CODPROD IN(SELECT CODPROD FROM PRODUCTOS
WHERE PVP IN (SELECT MAX(PVP) FROM PRODUCTOS
GROUP BY DESCRIPCION)
)
GROUP BY DESCRIPCION
;

Jaja menuda monstruosidad de consulta, es la primera vez que veo ese IN() en SQL, que función realiza, la misma que en otros lenguajes?

Un saludo :)
En línea

"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta en mysql
Bases de Datos
octavioxd 3 5,068 Último mensaje 9 Enero 2010, 04:27 am
por octavioxd
Consulta en mysql
Bases de Datos
usuani 2 5,101 Último mensaje 9 Marzo 2010, 17:25 pm
por usuani
[Solucionado]consulta a php-mysql
Desarrollo Web
cundre 4 4,404 Último mensaje 19 Febrero 2011, 17:26 pm
por cundre
traer toda la consulta php-mysql
PHP
basickdagger 4 3,117 Último mensaje 1 Julio 2012, 04:34 am
por basickdagger
Duda con consulta MYSQL
Bases de Datos
Bhrentox 1 2,272 Último mensaje 9 Septiembre 2012, 05:26 am
por Bhrentox
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines