Array
(
)

Count com SQL - Não conta

Amilton/pr
   - 13 dez 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.


Bruno Belchior
   - 13 dez 2005

#Código

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...


Amilton/pr
   - 13 dez 2005

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


Bruno Belchior
   - 14 dez 2005

#Código

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



Marcio.theis
   - 14 dez 2005

Vc também pode fazer assim:

#Código

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



Wiltonfenix
   - 14 dez 2005

#Código

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



Bruno Belchior
   - 14 dez 2005


Citação:
#Código

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...


Wiltonfenix
   - 14 dez 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.


Amilton/pr
   - 15 dez 2005

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