Query não traz o resultado correto

Delphi

06/03/2008

Amigos, a query abaixo me traz um resultado não esperado. Com os filtros de data passados, eu não possuo informação para o ACUM_DIA e nem para DEVOLUCAO, mas possuo informação para ACUMULADO. Porem ao rodar a query, vem o CD_FUNC, NOME todos preenchidos, mas os demais campos vêm NULL, e o correto seria:

[color=´#FF0000´]CD_FUNC 41920 NOME ´Jaime da Silva´ VENDA DO DIA NULL devolucao NULL acumulado 450,00[/color]. Alguém pode me dar uma ajuda?
SELECT DISTINCT CAP.CD_FUNC ´FUNCIONARIO´, FUNC.NOME ´NOME´, ACUM_DIA.SOMA ´VENDA DO DIA´, DEVOLUCAO.DEV ´DEVOLUCAO´, (ACUMULADO.ACUM_FUNC+ACUM_DIA.SOMA) ´ACUMULADO´ FROM TB_SAC_NF_CAPEADOR CAP INNER JOIN TB_SAC_FUNC FUNC ON(FUNC.CD_FUNC = CAP.CD_FUNC) LEFT JOIN (SELECT DISTINCT F_VEN.CD_FUNC, SUM(F_VEN.VL_FUNC) AS ACUM_FUNC FROM TB_SAC_FUNC_VEN F_VEN WHERE F_VEN.DT_FUNC >= ´2008-Mar-01´ AND F_VEN.DT_FUNC <= ´2008-Mar-06´GROUP BY F_VEN.CD_FUNC,F_VEN.DT_FUNC)ACUMULADO ON(ACUMULADO.CD_FUNC = CAP.CD_FUNC) LEFT JOIN (SELECT CP.CD_FUNC, SUM(CP.VL_BRUTO + CP.VL_DESC_ACR) AS SOMA FROM TB_SAC_NF_CAPEADOR CP WHERE ((CP.SR_NF = ´D2´) OR ((CP.SR_NF = ´B2´) AND (CP.CD_CFOP = 6102))) AND (CP.ST_CANC = 0) AND CP.DT_ENT >= ´2008-Mar-06´ AND CP.DT_ENT <= ´2008-Mar-06´ GROUP BY CP.CD_FUNC,CP.DT_ENT)ACUM_DIA ON(ACUM_DIA.CD_FUNC = CAP.CD_FUNC) LEFT JOIN (SELECT CP.CD_FUNC, SUM(CP.VL_BRUTO + CP.VL_DESC_ACR) AS DEV FROM TB_SAC_NF_CAPEADOR CP WHERE (CP.SR_NF = ´E2´) AND (CP.ST_CANC = 0) AND CP.DT_ENT >= ´2008-Mar-06´ AND CP.DT_ENT <= ´2008-Mar-06´ GROUP BY CP.CD_FUNC,CP.DT_ENT)DEVOLUCAO ON(DEVOLUCAO.CD_FUNC = CAP.CD_FUNC) WHERE CAP.DT_ENT >= ´2008-Mar-01´ AND CAP.DT_ENT <= ´2008-Mar-06´ AND CAP.CD_FUNC = 41920



Paulo

Paulo

Curtidas 0
POSTAR