Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Top 10 oracle

Estas en el tema de Top 10 oracle en el foro de Oracle en Foros del Web. Hola Todos Tengo que sacar el top 10 de productos vendidos, para esto tengo una tabla que tiene las ordenes y las ordenes tienen un ...
  #1 (permalink)  
Antiguo 16/05/2010, 21:55
 
Fecha de Ingreso: marzo-2008
Mensajes: 61
Antigüedad: 12 años, 8 meses
Puntos: 0
Busqueda Top 10 oracle

Hola Todos

Tengo que sacar el top 10 de productos vendidos, para esto tengo una tabla que tiene las ordenes y las ordenes tienen un campo producto.

Por ejemplo

orden(id,cliente,producto,cantidad_producto)

producto(id,descripcion,valor)

orden.producto =producto.id

Tengo que sacar el top 10 contando los registros que tienen el mismo campo producto y luego ordenarlos dependiendo de la cantidad de registros encontrados con el mismo producto.

Muchas gracias por su ayuda!!
  #2 (permalink)  
Antiguo 21/05/2010, 10:05
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 12 años, 8 meses
Puntos: 6
Respuesta: Top 10 oracle

Hola que tal,

El top de productos vendidos en este query viene dado por la suma de cantidad de producto vendido en cada orden, es decir que si el producto 1 esta en 3 ordenes y la cantidad de esas ordenes es 10 C/U (30 en total) y el producto 2 tiene una sola orden y una cantidad de productos de 50. El 2 aparecerá primero

Código:
SELECT o.producto, p.desripcion, SUM(o.cantidad_producto) AS total 
FROM producto p , orden o 
WHERE o.producto=p.ID 
AND ROWNUM <11 
GROUP BY o.producto, p.desripcion 
ORDER BY SUM(o.cantidad_producto) DESC
Saludos espero que te sea de ayuda
  #3 (permalink)  
Antiguo 24/05/2010, 00:26
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 13 años, 5 meses
Puntos: 43
Respuesta: Top 10 oracle

8vio

No estoy muy seguro, pero creo que el orden en que te va a hacer las cosas es

1- El group by
2- El rownum < 11
3- El order by

Con lo cual dudo de que ( si he entendido bien el enunciado ), rule.

Tal vez en un select..... from select si rularía :

select * from
(
SELECT o.producto, p.desripcion, SUM(o.cantidad_producto) AS total
FROM producto p , orden o
WHERE o.producto=p.ID
GROUP BY o.producto, p.desripcion
ORDER BY SUM(o.cantidad_producto) DESC
)
where ROWNUM <11
  #4 (permalink)  
Antiguo 24/05/2010, 06:59
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 12 años, 8 meses
Puntos: 6
Respuesta: Top 10 oracle

Hola,

Cierto tienes toda la razón, no estaba agarrando toda la población con el query que coloque. altair_797 esta resuelto tu post...

Saludos, gracias jc3000.

Etiquetas: top
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:53.