Fórum Filtro por Periodo e Total por dia!!! #333587
23/11/2006
0
Sou iniciante e estou fazendo um programa que controla abertura de chamados tecnicos em uma loja.
Uso table, Query e DataSource, tudo paradox.
Tenho que fazer um filtro por periodo, por exemplo, todos os chamados abertos do dia 01/01/06 até 01/01/2007, tenho uma rotina que faz essa busca via SQL:
Seria basicamente assim, no comando acima consigo filtrar todos os registros desse periodo, mas sai varios registros para cada dia, eu queria assim:
Por exemplo:
Dia Total
01 20
02 15
E assim por diante, não quero que repita datas e sim some a quantidade de protocolos abertos na data e no DBGrid apareça só o total de Protocolos abertos naquele dia.
Me ajudem por favor galera!!!
Agradeço antecipadamente.
Sds,
Marcelovms
Curtir tópico
+ 0Posts
24/11/2006
Olavojr
While Query1 do
begin
close;
SQL.Clear;
SQL.Add(´Select DATA, SUM(VALOR) From Tabela1´);
SQL.Add(´Where DATA between :dtinicial and :dtfinal´);
SQL.Add(´GROUP BY DATA´);
SQL.Add(´order by DATA´);
Parambyname(´dtinicial).asdate : Strtodate(edit1.text);
Parambyname(´dtFinal).asdate : Strtodate(edit2.text);
Open;
end;
ou seja, agrupe e some, perceba q NUM_PROTOCOLO sumiu, acredito q algo parecido lhe ajude. []´s.
Gostei + 0
24/11/2006
Marcelovms
Mas como faço para escrever o total na frente da data no DBGrid.,
Ex:
Data Total
23/11/2006 10
24/11/2006 15
Alguem pode me dar uma força, mais uma vez.
Agradeço antecipadamente.
Sds.
Gostei + 0
24/11/2006
Macario
Ola use:
Gostei + 0
24/11/2006
Djorius
SUM - Soma todos os registros da coluna.
COUNT - Retorna o número de registros que atendem a condição
Gostei + 0
24/11/2006
Marcelovms
Desculpe a ignorância, mais ainda não consegui.
Minha tabela Paradox tem os seguintes campos: Data, Protocolo, Usuario.
Coloquei o codido dentro de um button, mais quando clico dá erro e não aparece nada no DbGrid.
Nem o campo data aparece preenchido.
Já tentei de todos os jeitos para ficar assim:
Data Total de Registros deste dia
23/11/2006 15
Conto com a ajuda de voces.
Um abraço.
Gostei + 0
24/11/2006
Marcelovms
Gostei + 0
25/11/2006
Marcelovms
Gostei + 0
25/11/2006
Marco Salles
Mas so por curiosidade:
O dbgrid esta ligado ao DataSource , que esta ligado ao Query de maneira Correta ???
Segundo .. [b:169badc018]Voce definiu a nivel de projeto Tfields para a query [/b:169badc018]??: Caso afirmativo ,[b:169badc018] limpe [/b:169badc018]os tfields da query e execute novamente e post os resultados
Boa sorte...
Gostei + 0
25/11/2006
Marcelovms
Mas so por curiosidade:
O dbgrid esta ligado ao DataSource , que esta ligado ao Query de maneira Correta ???
Segundo .. [b:b412495e18]Voce definiu a nivel de projeto Tfields para a query [/b:b412495e18]??: Caso afirmativo ,[b:b412495e18] limpe [/b:b412495e18]os tfields da query e execute novamente e post os resultados
Boa sorte...[/quote:b412495e18]
Colega fiz o seguinte:
Tenho um query e um datasource.
No datasource, coloquei o dataset como Query1.
O DbGrid coloque o Datasource como datasource1.
No comando SQL do Query1 coloquei select * From Cadastro.
E no botão 1 coloquei o codigo:
While Query1 do
begin
close;
SQL.Clear;
SQL.Add(´Select DATA, count(Protocolo) as TOTAL From Cadastro´);
SQL.Add(´Where DATA between :dtinicial and :dtfinal´);
SQL.Add(´GROUP BY DATA´);
SQL.Add(´order by DATA´);
Parambyname(´dtinicial).asdate : Strtodate(edit1.text);
Parambyname(´dtFinal).asdate : Strtodate(edit2.text);
Open;
end;
O campo data fica correto, mas não aparece o resultado.
Precisa declarar alguma variavel para aparecer o campo total???, porque minha tabela não possui campo total, possui DATA, PROTOCOLO, NOME(que seria o nome do vendedor).
Gostaria que ficasse no Grid duas colunas (Data e Total) e abaixo fosse preenchido com os valores da tabela.
Mê dê uma força colega já estou desesperado.
Gostei + 0
25/11/2006
Marco Salles
seus problemas acabaram amigo... Basta escrever o codigo sugerido de maneira correta , porque este que voce postou por ultimo tem erro de sintaxi..
Mas o que voce deve fazer para começar a mudar o seu animo e ir no dbGrid dar um click nele e depois escolher a opção coluns editor .. Dai voce deve selecionar todos os campos e elimina-los.. Deixando-os vazios
Rode o programa e click no botão.. Pronto a coluna de nome ´Tota´l ja deve aparecer
Gostei + 0
25/11/2006
Marcelovms
seus problemas acabaram amigo... Basta escrever o codigo sugerido de maneira correta , porque este que voce postou por ultimo tem erro de sintaxi..
Mas o que voce deve fazer para começar a mudar o seu animo e ir no dbGrid dar um click nele e depois escolher a opção coluns editor .. Dai voce deve selecionar todos os campos e elimina-los.. Deixando-os vazios
Rode o programa e click no botão.. Pronto a coluna de nome ´Tota´l ja deve aparecer[/quote:1c84bbe483]
Que Deus te abençoe colega, funcionou uma beleza!!!
Gostei + 0
26/11/2006
Marco Salles
obrigado.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)