Ver Mensaje Individual
  #1  
Antiguo 11-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Reputación: 17
Rofocale Va por buen camino
ayuda problema con group by

Código Delphi [-]
   if(chkFecha.Checked) then
     begin
               dmDatos.cdsCliente.Active := false;
                with dmDatos.qryListados do begin
                if Active then Close;
                SQL.Clear;
                SQL.Add('SELECT f.caja,f.numero,f.fecha,f.hora,f.estatus,f.total-f.iva AS subtotal,f.iva,f.total,f.cliente,f.clave,sum(f.total) AS gtotal FROM ventas f WHERE f.fecha = :fecha GROUP BY f.caja,f.numero,f.fecha,f.hora,f.estatus,f.iva,f.total,f.cliente,f.clave');
                parambyname('fecha').AsDate := FechaBusq.date;
                open;
                end;

            with dmDatos.cdsCliente do begin
            Active := true;
            txtTotalventa.text := floattostr(FieldByName('gtotal').AsFloat);
            txtRegistros.text := inttostr(dmDatos.cdsCliente.RecordCount);
            FieldByName('caja').DisplayLabel := 'Caja';
            FieldByName('caja').DisplayWidth := 4;
            FieldByName('numero').DisplayLabel := 'Remisión';
            FieldByName('numero').DisplayWidth := 8;
            FieldByName('fecha').DisplayLabel := 'Fecha';
            FieldByName('fecha').DisplayWidth := 9;
            FieldByName('hora').DisplayLabel := 'Hora';
            FieldByName('hora').DisplayWidth := 11;
            FieldByName('estatus').DisplayLabel := 'Estatus';
            FieldByName('estatus').DisplayWidth := 7;
            FieldByName('subtotal').DisplayLabel := 'Subtotal';
            FieldByName('subtotal').DisplayWidth := 10;
           // (FieldByName('subtotal') as TNumericField).DisplayFormat := '#,##0.00';
            FieldByName('iva').DisplayLabel := 'IGV';
            FieldByName('iva').DisplayWidth := 10;
           // (FieldByName('iva') as TNumericField).DisplayFormat := '#,##0.00';
            FieldByName('total').DisplayLabel := 'Total';
            FieldByName('total').DisplayWidth := 10;
           // (FieldByName('total') as TNumericField).DisplayFormat := '#,##0.00';
            FieldByName('cliente').Visible := false;
          //  FieldByName('usuario').Visible := false;
            FieldByName('clave').Visible := False;
            FieldByName('gtotal').Visible := False;
           end;
    end
hola a todos este codigo utilizo para filtrar registros de una base de datos.. pero la parte sum(total) no me suma solo me devuelve el resultado del primer registro

Código Delphi [-]
SQL.Add('SELECT sum(f.total) AS gtotal FROM ventas f WHERE f.fecha = :fecha')

ese codigo filtra por fecha y me devuelve bien la suma de todos los registros de tal fecha

jose 2.5 05/05/2011
maria 2.5 05/05/2011
carla 1.0 06/05/2011

si lo filtro por fecha 5 solo sale en un text el total de gtotal que seria 5

todo bien ahi ahora como veran no solo necesito la suma del total en un edit si no que tmb me muestre el filtrado asi

jose 2.5 05/05/2011
maria 2.5 05/05/2011

ahora implemento el codigo asi

Código Delphi [-]
QL.Add('SELECT f.caja,f.numero,f.fecha,f.hora,f.estatus,f.total-f.iva AS subtotal,f.iva,f.total,f.cliente,f.clave,sum(f.total) AS gtotal FROM ventas f WHERE f.fecha = :fecha')

y como aumente todos los campos que se necesita para que se muestre ahora aparte de en un edit el total tambien en un GRID
me sale que necesito un group by clause

Código Delphi [-]
SQL.Add('SELECT f.caja,f.numero,f.fecha,f.hora,f.estatus,f.total-f.iva AS subtotal,f.iva,f.total,f.cliente,f.clave,sum(f.total) AS gtotal FROM ventas f WHERE f.fecha = :fecha GROUP BY f.caja,f.numero,f.fecha,f.hora,f.estatus,f.iva,f.total,f.cliente,f.clave');

lo implemento asi y me filtra bien me muestra los resultados si filtro por fecha 05/05/211 esto

jose 2.5 05/05/2011
maria 2.5 05/05/2011


pero en el edit me sale solo 2.5


ese es mi problema que ahora ya no me suma el total, creo que estoy haciendo algo mal con el group by

necesito que me ayuden porfavor muchas gracias de antemano
Responder Con Cita