Ir para conteúdo

POWERED BY:

Arquivado

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

Gilcimar

Consulta SQL no Quick Report

Recommended Posts

Olá pessoal, tdo beleza ?

Gente, gostaria de uma ajuda de vcs, tenho esta instrução sql abaixo:

 

Select DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc,

(SELECT SUM(QtdPecas) from tbFundicao

where (DtFun >= '03/28/2007' and DtFun <= '03/28/2007'))AS TOT_PECAS,

(SELECT SUM(QtdLiq) from tbFundicao

where (DtFun >= '03/28/2007' and DtFun <= '03/28/2007'))AS TOT_LIQ

From tbFundicao

where (DtFun >= '03/28/2007' and DtFun <= '03/28/2007')

order by DtFun desc;

 

Utilizando ela, retorna corretamente os valores no Interbase, mas estou tendo problemas para jogar os dados no Quick Report.

Neste código, retornaria 2 campos com a mesma data, só que no Delphi só me traz um...alguém poderia me ajudar com isto ?

No delphi meu código está assim:

 

with dm.QPesFund do

begin

Close;

sql.Clear;

sql.Add('Select DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc,');

sql.Add('(SELECT SUM(QtdPecas) from tbFundicao');

sql.Add('where (DtFun >= :pDtini and DtFun <= :pDtFinal))AS TOT_PECAS,');

sql.Add('(SELECT SUM(QtdLiq) from tbFundicao');

sql.Add('where (DtFun >= :pDtini and DtFun <= :pDtFinal))AS TOT_LIQ');

sql.Add('From tbFundicao');

sql.Add('where (DtFun >= :pDtini and DtFun <= :pDtFinal)order by DtFun desc');

try

if (edmdata1.Date <= edmdata2.Date) then

begin

ParamByName('pDtini').AsDate := edmdata1.Date;

ParamByName('pDtFinal').AsDate := edmdata2.Date;

end;

except

end;

try

Open;

except

end;

end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente alterar o código sql, para:

 

Select DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc, SUM(QtdPecas) as QtdePecas, SUM(QtdLiq) as QtdeLiqFrom tbFundicaowhere (DtFun >= '03/28/2007' and DtFun <= '03/28/2007')group by DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Percorder by DtFun desc;

Pode agrupar por todos os campos, ou somente pelos que desejar, para isto terá de remover do select e do group by...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente alterar o código sql, para:

Select DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc, SUM(QtdPecas) as QtdePecas, SUM(QtdLiq) as QtdeLiqFrom tbFundicaowhere (DtFun >= '03/28/2007' and DtFun <= '03/28/2007')group by DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Percorder by DtFun desc;
Pode agrupar por todos os campos, ou somente pelos que desejar, para isto terá de remover do select e do group by...
Olá MArcio, na consulta direto no Interbase funciona....o problema é que não funciona no delphi...ele só traz 1 registro ao inves de 2.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma verifica então nos fontes e tudo mais, visto que isto é um tanto quanto difícil de acontecer...

Marcio, eu acho que o problema pode estar na hora de mostrar o relatório. Eu não sei corretamente trbalhar com o QuickReport, pois sou iniciante, se precisar mostrar mais de 2 linhas de registros, precisa mudar ou utilizar alguma outra coisa no quickReport ?

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.