Gilcimar 0 Denunciar post Postado Abril 2, 2007 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
marcio.theis 3 Denunciar post Postado Abril 2, 2007 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
Gilcimar 0 Denunciar post Postado Abril 2, 2007 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
marcio.theis 3 Denunciar post Postado Abril 2, 2007 Dê uma verifica então nos fontes e tudo mais, visto que isto é um tanto quanto difícil de acontecer... Compartilhar este post Link para o post Compartilhar em outros sites
Gilcimar 0 Denunciar post Postado Abril 2, 2007 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
marcio.theis 3 Denunciar post Postado Abril 2, 2007 Para mostrar as informações você precisa usar um Detail, e ligar o QuickReport com a query em questão... Compartilhar este post Link para o post Compartilhar em outros sites