Ver Mensaje Individual
  #3  
Antiguo 12-10-2008
kia kia is offline
Miembro
 
Registrado: jul 2003
Posts: 78
Reputación: 21
kia Va por buen camino
Question

Quizas no me he explicado bien... soy novato... pongo hasta donde he llegado me funciona pero tarda un montonnnnnn.
Me lo podeis arreglar o mejorar para que me tarde menos..gracias.

Código SQL [-]
 procedure TEstadillo.Contador(Sender: TObject);
 var
 mode,mode1:string;
 yciudad,zciudad:string;
 ncuantos,:integer;
 begin

 DMTablas.hciudad.First;
 while not DMTablas.hciudad.eof do // ciudades
    begin  //recorre ciudades y  cta.equipos
    yciudad:=DMTablas.hciudadCIUDAD.Value;
    DMTablas.htipos.First;
    while not DMTablas.htipos.eof do //tipos de equipos
       begin
       mode:=DMTablas.htiposTIPO.Value;

       With MDOQLME do //query listado general 
        Begin
        Close;
        SQL.Clear;
        SQL.Add('select Count (*) from EQUIPOS');
        SQL.Add('Where CIUDAD=ciudad');
        SQL.Add('AND EQUIPO=equipo');
        SQL.Add('AND MODELO=modelo');
        ParamByName('pciudad').value:=yciudad;
        ParamByName('pequipo').value:=mode;
        ParamByName('pmodelo').value:=mode1;
        sql.Add('group by ciudad,equipo,modelo');
        open;
        ncuantos:=MDOqLME.fields[0].asinteger;
       end;
       //guardo los datos en una tabla para verla en un Rxdbgrid
       DMTablas.Tcontar.Append;
       if ncuantos<>0 then   begin //añade solo si hay equipos
          if zciudad<>yciudad then //evita repeticion de la ciudad en el RXdbgrid
             DMTablas.Tcontar.FieldByName('ciudad').value:=yciudad;
        zciudad:=yciudad; 
        DMTablas.Tcontar.FieldByName('equipo').value:=mode;
        DMTablas.Tcontar.FieldByName('marca').value:='---------------';   
        //DMTablas.Tcontar.FieldByName('modelo').value:='Total -------> ';
        DMTablas.Tcontar.FieldByName('modelo').value:=mode1;
        DMTablas.Tcontar.FieldByName('cantidad').value:=inttostr(ncuantos);
        DMTablas.Tcontar.Post;
        end;

    DMTablas.hmodelos.next;
    end;
    DMTablas.htipos.next;
    end;
    DMTablas.hciudad.next;
   end;
 end;

Los datos salen asi:
Código:
 Ciudad     equipo            marca      modelo   cantidad
 Granada      televisores                  avg          5
              televisores                  mmf         10
 Merida       televisores                  avg          2
              dvd                          fer          7          
......
Como ya dije soy novato... algun curso..gracias
__________________
Nadie nace enseñado, pide y se te dara.
Responder Con Cita