Fórum Contagem de registros #406363
10/08/2011
0
estou com uma duvida de como
fazer para contar quantos registros tem em uma consulta, só que eu queria contar
dois tipos de resultado
tenho uma tabela +ou- assim
os pedido
atendido
123 123 no prazo
321 321 em atraso
teria que contar
quantos registros tem em atraso e quantos tem no prazo e apresentar em um edit
se alguem puder me ajudar...
desde já agradeço
Marcelo Gadani
Curtir tópico
+ 0Posts
10/08/2011
Wilson Junior
Gostei + 0
10/08/2011
Marcelo Gadani
Gostei + 0
10/08/2011
Wilson Junior
1 - Você tem o SQL pronto? Se não tem, especifique aqui os campos da sua tabela e como você quer
2 - Quais componentes do Delphi você está utilizando para executar o SQL? Coloque aqui o seu código.
Aguardo retorno.
Gostei + 0
10/08/2011
Marcelo Gadani
with uDMconexao.CDSGrafApont do begin
close;
uDMConexao.CDSGrafApont.commandtext:='select atendido, count(atendido)from apontamento group by atendido';
FormConsApont.Edit2.text := uDMConexao.CDSGrafApont.FieldByName('atendido').AsString;
uDMConexao.CDSGrafApont.Open;
end;
end; aqui ele esta fazendo a seleção só não sei apresentar o resultado... to usando query e clientdataset
Gostei + 0
10/08/2011
Wilson Junior
with uDMconexao.CDSGrafApont do
begin
Close;
CommandText:='select atendido, count(atendido) AS ContAtendido from apontamento group by atendido';
Open;
FormConsApont.Edit2.Text := FieldByName('Atendido').AsString;
FormConsApont.Edit3.Text := FieldByName('ContAtendido').AsString;
end;
Espero ter colaborado.
Gostei + 0
10/08/2011
Marcelo Gadani
Gostei + 0
11/08/2011
Wilson Junior
with uDMconexao.CDSGrafApont do
begin
Close;
CommandText :=
' SELECT' +
' SUM(' +
' CASE Atendido' +
' WHEN ' + QuotedStr( 'EM ATRASO' ) + ' THEN 1' +
' ELSE 0' +
' END' +
' ) AS Soma_Atraso,' +
' SUM(' +
' CASE Atendido' +
' WHEN ' + QuotedStr( 'NO PRAZO' ) + ' THEN 1' +
' ELSE 0' +
' END' +
' ) AS Soma_Prazo' +
' FROM' +
' APONTAMENTO';
Open;
FormConsApont.Edit2.Text := FieldByName('Soma_Atraso').AsString;
FormConsApont.Edit3.Text := FieldByName('Soma_Prazo').AsString;
end;
Espero ter colaborado.
Gostei + 0
11/08/2011
Marcelo Gadani
Gostei + 0
11/08/2011
Marcelo Gadani
Gostei + 0
11/08/2011
Marcelo Gadani
Gostei + 0
11/08/2011
Wilson Junior
Espero ter colaborado.
Gostei + 0
11/08/2011
Marcelo Gadani
Close;
CommandText :=
' SELECT' +
' SUM(' +
' CASE Atendido' +
' WHEN ' + QuotedStr( 'EM ATRASO' ) + ' THEN 1' +
' ELSE 0' +
' END' +
' ) AS Soma_Atraso,' +
' SUM(' +
' CASE Atendido' +
' WHEN ' + QuotedStr( 'NO PRAZO' ) + ' THEN 1' +
' ELSE 0' +
' END' +
' ) AS Soma_Prazo' +
' FROM' +
' APONTAMENTO' +
' and ' + <--------- inclui esta parte do codigo mais esta dando erro
' ENTREGA BETWEEN :data1 and :data2';<--------- inclui esta parte do codigo mais esta dando erro
uDMConexao.CDSGrafApont.Params.ParamByName('data1').AsDateTime := StrToDate(maskedit1.Text);<--------- inclui esta parte do codigo mais esta dando erro
uDMConexao.CDSGrafApont.Params.ParamByName('data2').AsDateTime := StrToDate(maskedit2.Text);<--------- inclui esta parte do codigo mais esta dando erro
Open;
FormConsApont.Edit2.Text := FieldByName('Soma_Atraso').AsString;
FormConsApont.Edit3.Text := FieldByName('Soma_Prazo').AsString;
end;
Gostei + 0
11/08/2011
Wilson Junior
Quanto aos parâmetros, vai depender da formatação da sua data do PC.
De uma olhada neste link https://www.devmedia.com.br/forum/delphi/383483-ParamByName.html
Espero ter colaborado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)