Gilcimar 0 Denunciar post Postado Abril 9, 2007 Olá pessoal, beleza ?Estou com o seguinte problema, tenho uma query de consulta a uma tabela, só que a consulta sql acaba se perdendo na instrução. No interbase a consulta funciona, mas no delphi não, um campo se perde. Olhem a consulta:with dm.QPesFund do begin Close; sql.Clear; sql.Add('Select DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc,'); sql.Add('(Select AVG(Perc) from tbFundicao'); sql.Add('where (DtFun = :pDtFinal))AS MEDIA,'); sql.Add('(SELECT SUM(QtdLiq) from tbFundicao'); sql.Add('where (DtFun = :pDtFinal))as SOMLIQ,') ; sql.Add('(SELECT SUM(QtdPecas) from tbFundicao'); sql.Add('where (DtFun = :pDtFinal))as SOMPECAS,'); 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)'); sql.Add('group by DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Perc'); sql.Add('having (Dtfun = :pDtFinal)'); sql.Add('order by Dtfun desc');Tem um jeito mais facil de escrever essa consulta para que o delphi entenda ou alguém achou algum erro ?Os campos MEDIA, SOMLIQ, e SOMPECAS, é o somatórios dos campo por dia e o TOT_PECAS e TOT_LIQ é o acumulado de um intervalo de datas.O campo que ele se perde é o SOMLIQ, eu não sei porque, já que no interbase se rodar esta instrução funciona.Aguardo a ajuda de vcs.AttGilcimar Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Abril 10, 2007 Tente da seguinte forma: Select tbFundicao.DtFun, tbFundicao.Pan, tbFundicao.NrFun, tbFundicao.NvVdr, tbFundicao.QtdPecas,tbFundicao.QtdLiq, tbFundicao.Perc, AVG(tbFundicao.Perc) as MEDIA, SUM(tbFundicao.QtdLiq) as SOMLIQ,SUM(tbFundicao.QtdPecas) as SOMPECAS, SUM(tbFundicao.QtdPecas) as TOT_PECAS, SUM(tbFundicao.QtdLiq) as TOT_LIQFrom tbFundicaowhere tbFundicao.DtFun between :pDtini and :pDtFinalgroup by DtFun, Pan, NrFun, NvVdr, QtdPecas, QtdLiq, Percorder by Dtfun desc Compartilhar este post Link para o post Compartilhar em outros sites
Gilcimar 0 Denunciar post Postado Abril 10, 2007 Olá MArcio, obrigado pela dica, mas neste caso não funcionaria, pois os campos MEDIA,SOMLIQ e SOMPECAS são somatórios do dia e não de um intervalo de datas.Mas eu já consegui resolver o problema, utilizei o componente QREXPR e somei os campos QTDLIQ que aparecem no relatório. O restante estava OK.Mesmo assim valeu...obrigado !!Gilcimar Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Abril 10, 2007 hummm... beleza... realmente o quickreport com seus componentes facilitam muito a vida... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites