Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renanbg

[Resolvido]  com Relatorio

Recommended Posts

Olá pessoal

 

Montei um relatorio de aniversariantes onde seleciono o mes em um combo e o sistema me traz os aniversariantes, mas me pediram para fazer tambem um relatorio que traz todos os aniversariantes e só estou com duvida em como organizar eles por mês

 

uso esse codigo

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select codigo, funcionario, endereco, telefone, funcao, dt_nascimento from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where status = "ATIVO"');
frmrelfuncionarios.Query2.SQL.Add('order by funcionario');
frmrelfuncionarios.Query2.Open;

como podem ver ali está ordenado por funcionario...

 

como faço para ordenar pelo mes para que fique de janeiro a dezembro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade assim você ta ordenando por funcionário

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select codigo, funcionario, endereco, telefone, funcao, dt_nascimento from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where status = "ATIVO"');

* olha a linha de comando de ordenação aqui*
frmrelfuncionarios.Query2.SQL.Add('order by funcionario');

frmrelfuncionarios.Query2.Open;

você não precisa pensar no fator mês, pode ordenar pela dt_nascimento já vai ficar certinho por dia/mês/ano

 

frmrelfuncionarios.Query2.SQL.Add('Order by dt_nascimento);

 

assim se tiverem duas pessoas por exemplo q façam aniversário em janeiro, uma dia 10 e outra dia 12 ficarão também em ordem entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade assim você ta ordenando por funcionário

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select codigo, funcionario, endereco, telefone, funcao, dt_nascimento from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where status = "ATIVO"');

* olha a linha de comando de ordenação aqui*
frmrelfuncionarios.Query2.SQL.Add('order by funcionario');

frmrelfuncionarios.Query2.Open;

você não precisa pensar no fator mês, pode ordenar pela dt_nascimento já vai ficar certinho por dia/mês/ano

 

frmrelfuncionarios.Query2.SQL.Add('Order by dt_nascimento);

 

assim se tiverem duas pessoas por exemplo q façam aniversário em janeiro, uma dia 10 e outra dia 12 ficarão também em ordem entendeu?

sim, sei q ta por funcionario

 

Se ordenar por data de nascimento não fica legal pq ele vai levar o ano em consideração e não o mes

 

olha como fica ordenado pela data de nascimento

 

06/10/1980

01/02/2006

02/02/2006

01/10/2007

 

Como pode ver os meses ficam bagunçados...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro que você citou acima marcio é exatamente o que eu uso para selecionar por mes

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select codigo, funcionario, endereco, telefone, funcao, dt_nascimento from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where extract(month from Dt_nascimento) = :Mes');
frmrelfuncionarios.Query2.SQL.Add('order by funcionario');
frmrelfuncionarios.Query2.ParamByName('Mes').AsInteger := StrToInt(Edit1.Text);
frmrelfuncionarios.Query2.Open;
frmrelfuncionarios.QuickRep1.Preview;

no outro link vi esse exemplo abaixo e acho que dá para adaptar no meu, mas n estou tendo sucesso

 

SELECT extract(day FROM dtnasc) dia, extract(month FROM dtnasc) mes, dtnasc
FROM teste T
WHERE extract(month FROM dtnasc) = 8
AND extract(day FROM dtnasc) BETWEEN 1 AND 31
ORDER BY 1, 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, basta trocar os campos, ficando:

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select extract(day FROM dt_nascimento) dia, extract(month FROM dt_nascimento,) mes');
frmrelfuncionarios.Query2.SQL.Add('codigo, funcionario, endereco, telefone, funcao, dt_nascimento');
frmrelfuncionarios.Query2.SQL.Add('from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where status = "ATIVO"');
frmrelfuncionarios.Query2.SQL.Add('order by 1, 2');
frmrelfuncionarios.Query2.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou a vírgula, e vírgula no local errado, conforme diz o erro:

 

frmrelfuncionarios.Query2.Close;
frmrelfuncionarios.Query2.SQL.Clear;
frmrelfuncionarios.Query2.SQL.Add('select extract(day FROM dt_nascimento) dia, extract(month FROM dt_nascimento) mes,');
frmrelfuncionarios.Query2.SQL.Add('codigo, funcionario, endereco, telefone, funcao, dt_nascimento');
frmrelfuncionarios.Query2.SQL.Add('from tbfuncionarios');
frmrelfuncionarios.Query2.SQL.Add('where status = "ATIVO"');
frmrelfuncionarios.Query2.SQL.Add('order by 1, 2');
frmrelfuncionarios.Query2.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.