Fórum Consulta SQL complicada (Count) ????. #245256

02/08/2004

0

Pessoal,

Bom dia a todos!
Tenho uma tabela de funcionários onde possui os seguintes campos:

Nome,
CPF,
Data de Nascimento,
Data de Entrada,
Data de Saída,
Suspenso

Preciso fazer uma consulta onde possa contar:

1- Quantos funcionários Saíram (Através do campo Data de Saída);
2- Quantos funcionários Entraram (Através do campo Data de Entrada);
3- Quantos Funcionários estão Suspensos (Através do campo Suspenso)

Há condições de obter este resultados em apenas uma consulta? como posso fazer isso?
No interbase aceita a condição ´IF´ ou ´CASE´?
Caso alguém possa ajudar ficarei grato.
Agradeço desde já.

Obs: Utilizo o Interbase 6.0 com o Delphi 7.0;


Mmbarros

Mmbarros

Responder

Posts

02/08/2004

G1b4

Caro MMBarros,
Usa um dataset...
1- Quantos funcionários Saíram (Através do campo Data de Saída);
2- Quantos funcionários Entraram (Através do campo Data de Entrada);
DataSet.Close;
DataSet.SQL.Text:=´SELECT COUNT(CPF) FROM FUNCIONARIOS WHERE DATA_SAIDA BETWEEN :Data1 AND :Data2´;
DataSet.ParamByName(´Data1´).AsDate:=StrToDate(Edit1.Text);
DataSet.ParamByName(´Data2´).AsDate:=StrToDate(Edit2.Text);
DataSet.Open;


3- Quantos Funcionários estão Suspensos (Através do campo Suspenso)
DataSet.Close;
DataSet.SQL.Text:=´SELECT COUNT(CPF) FROM FUNCIONARIOS WHERE SUSPENSO =´+QuotedStr(´S´);
DataSet.Open;


Espero te-lo ajudado :D !!!


Responder

Gostei + 0

02/08/2004

Paulo_amorim

Olá

Pode-se obter essa informacao atraves de UNION

Poderia fazer assim (supondo q a quantidade eh na data prestabelecida)

SELECT ´Ent´ tipo, COUNT(*)  FROM funcionarios WHERE data_entrada BETWEEN :p1 AND :p2
UNION
SELECT ´Sai´, COUNT(*) FROM funcionarios WHERE data_saida BETWEEN :p1 AND :p2
UNION
SELECT ´Sus´, COUNT(*) FROM funcionarios WHERE suspenso = ´S´

O campo ´tipo´ mostra a que tipo de count o dado pertence

Espero que ajdue
Até+


Responder

Gostei + 0

02/08/2004

Rômulo Barros

Select Nome,Cpf,(Select Count(Suspenso) From Funcionarios Where Suspenso not null),(Select Count(Data_De_Saida) From Funcionarios Where Data_De_Saida not null)From Funcionarios


:o :o :o


Responder

Gostei + 0

02/08/2004

Paulo_amorim

[quote:7070fcc3df=´Undeclared Identifier´]
Select Nome,Cpf,(Select Count(Suspenso) From Funcionarios Where Suspenso not null),(Select Count(Data_De_Saida) From Funcionarios Where Data_De_Saida not null)From Funcionarios


:o :o :o[/quote:7070fcc3df]

Olá

Assim ele não irá dar erro de Group?? :idea:


Responder

Gostei + 0

02/08/2004

Rômulo Barros

[quote:647f545484=´Undeclared Identifier´]
Select Nome,Cpf,(Select Count(Suspenso) From Funcionarios Where Suspenso not null),(Select Count(Data_De_Saida) From Funcionarios Where Data_De_Saida not null)From Funcionarios
:o :o :o


Olá

Assim ele não irá dar erro de Group?? :idea:[/quote:647f545484]

Não :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar