Access - Consulta que arroje varios top 5

   
Vista:

Consulta que arroje varios top 5

Publicado por cpjcarlos (4 intervenciones) el 28/05/2012 23:53:01
Buenas tardes amigos tengo una tabla de pedidos del año y otra con los clientes que han comprado esos productos. Lo que me gustaría obtener es en una consulta que me muestre los 5 productos mas vendidos a cada cliente

SELECT TOP 5 Pedidos.IDCLEINTE, Pedidos.IDPRODUCTO, Sum(Pedidos.Cantidad) AS SumaDeCantidad
FROM Pedidos
GROUP BY Pedidos.IDCLEINTE, Pedidos.IDPRODUCTO;


Alguien me podría ayudar ya que de esta forma solo me salen los 5 pedidos más altos. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta que arroje varios top 5

Publicado por Nicanor Hernandez (1 intervención) el 29/05/2012 05:57:09
Lo que se me ocurre es hacerlo por código de la siguiente manera:

-- Obtienes los clientes que van a jugar en el reporte.
-- Haces un ciclo para cada cliente hasta el final de recordset

En el primer ciclo ejecutan esto:
-- Ejecutas un docmd.runsql ("select top 5 x,x,x,x into e_cliente from clientes where idCliente = " rs.cliente)
A partir del segundo este otro:
-- Ejecutas un docmd.runsql ("insert into e_cliente select top 5 x,x,x,x from clientes where idCliente = " rs.cliente)

-- Luego haces tu reporte con los todos los resultados de la tabla e_clientes

Nota: las x,x,x son los campos que requieras!

Espero que me haya explicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta que arroje varios top 5

Publicado por jose (741 intervenciones) el 29/05/2012 08:43:05
mira esta consulta

tabla proveeedores y albaranes

suma las cantidades de la tabla de albaranes y muestra las 10 primeras
- ordena la selecion por orden descendente de la suma de cantidades


- vete al generador de consultas de access , luego haces la consulta y luego vas a

verla de forma SQL y te la da esctrita tal y como está esta


un saludo :


SELECT top 10 [T024-PROVEEDORES].[ID-T024], [T024-PROVEEDORES].[NOMBREPROVEEDOR-T024], Sum([T500-ALBARANES].[CANTIDAD-T500]) AS [SumaDeCANTIDAD-T500]
FROM [T024-PROVEEDORES] INNER JOIN [T500-ALBARANES] ON [T024-PROVEEDORES].[ID-T024] = [T500-ALBARANES].[ID-T024-PROVEEDOR-T500]
GROUP BY [T024-PROVEEDORES].[ID-T024], [T024-PROVEEDORES].[NOMBREPROVEEDOR-T024]
ORDER BY Sum([T500-ALBARANES].[CANTIDAD-T500]) DESC;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar