Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Bhrentox en 20 Mayo 2012, 22:35 pm



Título: Como realizar esta consulta en oracle??
Publicado por: Bhrentox en 20 Mayo 2012, 22:35 pm
Resulta que tengo mi tabla:

(http://imageshack.us/f/341/tablar.png/)

Si no se ve la imagen aca les dejo el link
http://imageshack.us/f/341/tablar.png/

Lo que deseo hacer es una consulta que me muestre todos los productos que hayan sido vendidos el mismo dia que el producto que contiene el 'total' mayor que en este caso seria el del 'total'= 456 ¿Como realiza la consulta para que me muestre los 5 productos mas vendidos ese dia que en este caso seria el 4/12/2012?

Espero haberme dado a explicar salu2 y muchas gracias de ante mano.


Título: Re: Como realizar esta consulta en oracle??
Publicado por: soru13 en 23 Mayo 2012, 16:08 pm
yo creo que esta consulta te debería funcionar:

Código
  1. SELECT * FROM tabla WHERE dia IN (SELECT dia FROM tabla WHERE total = MAX(total)) ORDER BY total ASC LIMIT 5;


Título: Re: Como realizar esta consulta en oracle??
Publicado por: HdM en 23 Mayo 2012, 19:14 pm
Buenas.

@soru13: tío no le hagas las tareas  :-\, por lo menos que ponga el desarrollo de cómo ha montado su consulta, en qué se atasca...

De todos modos, tu propuesta creo que no le funcionará. LIMIT, que yo sepa no existe en Oracle (hay algo parecido pero no funciona exactamente igual). MAX, debería ir dentro de una subconsulta. El campo "dia", no tiene formato fecha "dd/mm/yy" o equivalente, habría que utilizar además, los campos "mes" y "año".

Un saludo.