Dúvida com query
Amigos, a query abaixo parece estar correta, mas não está. Eu preciso que a tabela virtual ACUMULADO me traga itens que também não existam na virtual ACUM_ITEM, o que não está ocorrendo, ou seja, tenho na tabela SAC_VEN itens com CD_SEC = 2 e não possuo esses itens na tabela NF_ITEM. O que eu quero é mostrar esses itens também. O LEFT não está me trazendo esses itens. Já fiz LEFT com todas as tabelas e não dá. Com INNER não vai funcionar mesmo. O que devo mudar na minha query para obter o resultado esperado? Grato desde já!!!!
SELECT
SEC.CD_SEC
,SEC.DESCRICAO
,SUM(COALESCE((ACUM_ITEM.ITEM),0)) ´VENDA DO DIA´
,SUM(COALESCE((ACUM_SEC.SECAO),0) + COALESCE((ACUM_ITEM.ITEM),0)) ´ACUMULADO´
FROM TB_SAC_SECAO SEC
INNER JOIN
(SELECT
NF_ITEM.CD_SEC,
SUM(NF_ITEM.QT_ITEM) ITEM
FROM
TB_SAC_NF_CAPEADOR NF_CAPEADOR,
TB_SAC_NF_ITEM NF_ITEM
WHERE
NF_CAPEADOR.NU_CX = NF_ITEM.NU_CX AND
NF_CAPEADOR.NU_NF = NF_ITEM.NU_NF AND
NF_CAPEADOR.SR_NF = NF_ITEM.SR_NF AND
NF_CAPEADOR.ST_CANC = 0 AND
((NF_CAPEADOR.SR_NF = ´D2´) OR
(NF_CAPEADOR.SR_NF = ´B2´ AND
NF_CAPEADOR.CD_CFOP = 6102))
GROUP BY
NF_ITEM.CD_SEC) ACUM_ITEM
ON (ACUM_ITEM.CD_SEC = SEC.CD_SEC)
LEFT JOIN
(SELECT
CD_SEC,
SUM(QT_SEC) SECAO
FROM
TB_SAC_SEC_VEN
WHERE
DT_SEC >= ´2008-Mar-01´ AND
DT_SEC <= ´2008-Mar-08´
GROUP BY
CD_SEC) ACUM_SEC
ON (ACUM_SEC.CD_SEC = SEC.CD_SEC)
GROUP BY
SEC.CD_SEC
,SEC.DESCRICAO
Paulo
Curtidas 0