Fórum Qual comando devo usar #371517
23/06/2009
0
por exemplo
SERVIÇO:
1 manicure
2 corte
3 manicure
4 manicure
5 pintor
6 pintor
nesse caso que mostre no relatório a ´manicure´ já que mais repete e no outro relatório o ´corte´ já menos repete
só não sei como colocar no comando sql....
Uso delphi 7 e interbase 6.5
Tecnofine
Curtir tópico
+ 0Posts
23/06/2009
Emerson Nascimento
não sei se o interbase tem comando para limitar o numero de registros.
no FB seria:
[i:bf8b278000]select [b:bf8b278000]first 1[/b:bf8b278000] count(*), servico from tabela group by servico order by 1[/i:bf8b278000] para obter o que menos se repete e
[i:bf8b278000]select [b:bf8b278000]first 1[/b:bf8b278000] count(*), servico from tabela group by servico order by 1 desc[/i:bf8b278000] para obter o que mais se repete
se o interbase não possuir o comando first (ou top, ou limit), faça em dois passos:
[i:bf8b278000]select count(*), servico from tabela group by servico order by 1[/i:bf8b278000] e pegue o primeiro registro para obter o que menos se repete e
[i:bf8b278000]select count(*), servico from tabela group by servico order by 1 desc[/i:bf8b278000] e pegue o primeiro registro para obter o que mais se repete
Gostei + 0
23/06/2009
Tecnofine
então usei esse
select count(*), servico from tabela group by servico order by 1
porem
mostra assim:
count service
1 manicure
1 corte
5 null
Poderia me explicar melhor sou iniciante nesse assunto
Gostei + 0
23/06/2009
Danielrsanches
se vc utilizar count(*), exibirá o total de registros filtrados ...
utilize ao invés de * o nome do campo que deseja ... tipo:
se o campo onde contem os serviços (manicure,corte...) se chama SERV faça assim ...
select count(SERV), SERV from SERVICOS group by SERV
abraços !!
Gostei + 0
23/06/2009
Tecnofine
Agora outra duvida:
Exemplo:
count service
7 manicure
3 corte
1 penteado
Que uso para receber uma variavel serviço para listar no relatório todos os registros como (cliente, telefone, id) de uma tabela e juntar (serviço, data, id_ag) de outra tabela onde id = id_ag.
Porém tem que ser filtrado pelo serviço que é manicure (porque foi esse maior).
Aguardo a resposta...
Gostei + 0
24/06/2009
Tecnofine
primeiro eu fiz assim
var mais:string;//declarei uma variavel
begin
ibquery1.close;
ibquery1.SQL.Clear;
ibquery1.SQL.Add(´select count(service), service from itens_historico group by service order by 1 desc´);
ibquery1.Open;
mais:= IBQuery1.Fields[1].AsString;//recebe o qual service é que mais repete
//depois fiz uma consulta usando atraves dessa variavel
ibquery1.close;
ibquery1.SQL.Clear;
ibquery1.SQL.Add(´select ITENS_HISTORICO.service, HISTORICO.cod_his, HISTORICO.cod_cli, HISTORICO.nome_cli, HISTORICO.tel_cli, ITENS_HISTORICO.cod, ITENS_HISTORICO.cod_his, ITENS_HISTORICO.data, ´);
ibquery1.SQL.Add(´ITENS_HISTORICO.descricao, ITENS_HISTORICO.funcionario, ITENS_HISTORICO.horario, ITENS_HISTORICO.situacao from HISTORICO , ITENS_HISTORICO ´);
ibquery1.SQL.Add(´where HISTORICO.cod_his = ITENS_HISTORICO.cod_his and itens_historico.service =´+#39+mais+39);
ibquery1.Open;
Obrigada a todos que me ajudaram...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)