Fórum Query não traz o resultado correto #354923
06/03/2008
0
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?
[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
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)