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

Clientes mas compradores

Estas en el tema de Clientes mas compradores en el foro de Bases de Datos General en Foros del Web. Hola Gente estoy con un query que no puedo sacar Tengo que buscar los 10 clientes mas compradores de un producto. la estructura es sencilla: ...
  #1 (permalink)  
Antiguo 09/02/2016, 10:16
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Clientes mas compradores

Hola Gente estoy con un query que no puedo sacar
Tengo que buscar los 10 clientes mas compradores de un producto.
la estructura es sencilla:

clientes
---------
id
nombre

Pedido
--------
id
clienteid

pedidoproducto
------------------
id
productoid
clienteid
cantidad -- basarse en esta cantidad para obntener los clientes mas compradores
preciototal

productos
-----------
id
empresaid
nombre
sabor
presentacion

como ejemplo tengo este query que me da las ventas del producto con ID = 97
Código SQL:
Ver original
  1. SELECT pp.cantidad, pp.precioTotal, pr.id, pr.Nombre nombre_producto, pr.sabor, pr.presentacion, e.Nombre nombre_empresa, pe.fecha AS fecha_pedido, c.nombre cliente_nombre, c.id clienteid, pe.id pedidoid
  2. FROM productos pr
  3. INNER JOIN pedidosproductos pp ON ( pp.productoId = pr.id )
  4. INNER JOIN pedidos pe ON ( pp.pedidoId = pe.id )
  5. INNER JOIN empresas e ON ( e.id = pr.EmpresaId )
  6. INNER JOIN clientes c ON ( c.id = pe.clienteId )
  7. WHERE pe.fecha >=  '2015-1-1 00:00:00'
  8. AND pr.EmpresaId =1  
  9. AND pe.fecha <=  '2016-2-9 23:59:59'
  10. AND pe.estado2 <>6  -- VENTAS CONFIRMADAS
  11. AND pr.id =97

como les decia como podria obtener los 10 clientes que mas compraron ese producto

gracias por la ayuda

Última edición por gnzsoloyo; 12/02/2016 a las 13:39
  #2 (permalink)  
Antiguo 09/02/2016, 10:35
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Clientes mas compradores

Código SQL:
Ver original
  1. SELECT top 10 * FROM(
  2. SELECT COUNT(c.clienteid) AS totalcompras, cliente_nombre FROM(
  3. SELECT pp.cantidad, pp.precioTotal, pr.id, pr.Nombre nombre_producto, pr.sabor, pr.presentacion, e.Nombre nombre_empresa, pe.fecha AS fecha_pedido, c.nombre cliente_nombre, c.id clienteid, pe.id pedidoid
  4. FROM productos pr
  5. INNER JOIN pedidosproductos pp ON ( pp.productoId = pr.id )
  6. INNER JOIN pedidos pe ON ( pp.pedidoId = pe.id )
  7. INNER JOIN empresas e ON ( e.id = pr.EmpresaId )
  8. INNER JOIN clientes c ON ( c.id = pe.clienteId )
  9. WHERE pe.fecha >= '2015-1-1 00:00:00'
  10. AND pr.EmpresaId =1
  11. AND pe.fecha <= '2016-2-9 23:59:59'
  12. AND pe.estado2 <>6 -- VENTAS CONFIRMADAS
  13. AND pr.id =97
  14. ) AS t1 GROUP BY cliente_nombre
  15. ) AS t2 ORDER BY totalcompras DESC
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: query, select
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 10:34.