Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-12-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Poder: 20
maravert Va por buen camino
Se puede Combinar Top, SUM, GRoup

Hola compañeros:

Espero puedas darme una manita:
Manejo Delphi 7 y Tablas Paradox

Necesito obtener los 10 Mejores Clientes de la empresa durante un periodo, tengo el siguiente codigo pero me da un error "When GROUP BY EXIST, every simple field in projectors must be in Group BY"

Mi tabla Ventas, tiene los siguientes campos: Id_Cliente, Fecha, Subtotal, Iva,


Código SQL [-]
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select Sum (Ventas.Subtotal) as VentasTop, Ventas.Id_Cliente, Ventas.Fecha');
Query1.SQL.Add('FROM Ventas INNER JOIN Clientes ON Ventas.Id_Cliente = Clientes.Clave');
Query1.SQL.Add('where fecha >= :fechav AND fecha <= :fechah');
Query1.SQL.Add('GROUP BY Ventas.Id_Cliente');
Query1.ParamByNAme('fechav').AsDate := Fecha1;
Query1.ParamByNAme('fechah').AsDate := Fecha2;
Query1.Open;;







Ademàs queno se donde colocar el TOP 10.

Espero alguien me de una manita.

Gracias a todos
Responder Con Cita
  #2  
Antiguo 19-12-2006
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
te falta agregar "Ventas.Fecha" a la clausula group by, sin embargo este campo a mi juicio debe quedar fuera por una simple razon, quieres obtener los 10 mejores clientes en un tiempo determinado, digamos 1 mes, 1 semana o lo que sea, pero si usas el campo fecha, tienes que agregarlo a la clausula group by por lo tanto solo te sumaria las ventas de esa fecha, las de 1 dia despues serian otra suma...
Responder Con Cita
  #3  
Antiguo 23-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.408
Poder: 22
fjcg02 Va camino a la fama
Prueba esto, tal cual

Código SQL [-]
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select Clientes.Nombre, Sum (Ventas.Subtotal) as VentasTop');
Query1.SQL.Add('FROM Ventas INNER JOIN Clientes ON Ventas.Id_Cliente = Clientes.Clave');
Query1.SQL.Add('where fecha >= :fechav AND fecha <= :fechah');
Query1.SQL.Add('GROUP BY Clientes.Nombre');
Query1.SQL.Add('ORDER BY VentasTop DESC');
Query1.ParamByNAme('fechav').AsDate := Fecha1;
Query1.ParamByNAme('fechah').AsDate := Fecha2;
Query1.Open;;

Pasa del top 10, te saldrán ordenados de mayor a menor en la suma de ventas. Para qué vas a quedarte con 10 si puedes ver todos. Si no funciona prueba con 'ORDER BY 2 DESC' ( ordeno descendentemente por el 2º campo). En el ejemplo que te pondo estoy suponiendo que en la tabla clientes tienes un campo "nombre", porque si vas a visualizar el idcliente no tiene sentido que incluyas dos tablas.

Suerte.
Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Impresion de group header group footer Manuel Impresión 3 11-11-2007 02:05:23
consultas anidadas: group by dentro otro group by DobleSiete SQL 7 31-01-2005 15:59:31
¿Como se puede combinar valores del registro por codigo? dim Varios 6 29-05-2004 19:51:15
Group Header, Detail y Footer Group en la misma pagina MarcelRuz Impresión 0 21-04-2004 00:27:14
Como puede combinar dos QRDBText subzero Impresión 8 03-02-2004 10:26:23


La franja horaria es GMT +2. Ahora son las 19:22:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi