Count com SQL - Não conta

Delphi

13/12/2005

Alguém pode descobrir porque a sql abaixo não conta os registros . . .
quer2.Close;
Quer2.sql.clear;
Quer2.SQL.Add(´Select count(A.Cpf) conta, A.Nmedico, A.Ncons, A.Codpac ´);
Quer2.sql.add(´FROM ´prcons.DB´ A ´);
Quer2.sql.add(´Where (A.Cpf = :cp) ´);
Quer2.sql.add(´group by A.Nmedico, A.Ncons, A.Codpac´);
Quer2.ParamByName(´cp´).AsString := edit7.text;
Quer2.Prepare;
Quer2.Open;

Quero contar os registros que tenham o mesmo CPF. Só isso.


Amilton/pr

Amilton/pr

Curtidas 0

Respostas

Bruno Belchior

Bruno Belchior

13/12/2005

select count(*) from Tabela where CPF = :CPF
Da maneira que está fazendo o SQL retornará a quantidade de pessoas com o mesmo A.Nmedico, A.Ncons, A.Codpac...


GOSTEI 0
Amilton/pr

Amilton/pr

13/12/2005

sim, mas não dá pra contar a quantidade de registro que contém o mesmo CPF e mostrar o nome, etc?


GOSTEI 0
Bruno Belchior

Bruno Belchior

13/12/2005

select nome, (select Count(*) from Tabela where CPF = :CPF) from Tabela where CPF = :CPF



GOSTEI 0
Marcio.theis

Marcio.theis

13/12/2005

Vc também pode fazer assim:

select count(*), nucpfcnpj
from cliente
group by nucpfcnpj
having count(*) > 1



GOSTEI 0
Wiltonfenix

Wiltonfenix

13/12/2005

select nome,count(*) as conta from Tabela where CPF = :varCPF group by CPF



GOSTEI 0
Bruno Belchior

Bruno Belchior

13/12/2005

select nome,count(*) as conta from Tabela where CPF = :varCPF group by CPF
Creio que isso não rodará (Firebird) pois o campo CPF não está sendo listado nos campos retornados...


GOSTEI 0
Wiltonfenix

Wiltonfenix

13/12/2005

Não foi dito aqui que é em Firebird.

Simulei esse comando no MySQL e funciona perfeitamente. Não é necessário o campo do Group By estar na relação de campos retornados.


GOSTEI 0
Amilton/pr

Amilton/pr

13/12/2005

Um detalhe. Uso Paradox (ainda . . .) Funciona?


GOSTEI 0
POSTAR