Boa tarde amigos, eu estou executando a consulta abaixo, mas a tabela vlfatura, que possui valores repetidos para o mesmo campo e competência, não está somando os valores repetidos todas as vezes em que eles aparecem, ou seja, a query soma os valores iguais apenas uma vez. Por favor, alguém sabe me dizer o que pode estar errado?
Desde já agradeço!
SELECT ALL competencia, campo, SUM(valor) AS valores FROM
(SELECT ALL vlfatura.competencia AS competencia, vlfatura.cd_campo
AS campo, vlfatura.vl_item AS valor
FROM (((ccobranca INNER JOIN cgrupo ON ccobranca.cd_cobranca = cgrupo.cd_cobranca)
INNER JOIN csgrupo ON cgrupo.cd_grupo = csgrupo.cd_grupo)
INNER JOIN cempresa ON csgrupo.cd_sgrupo = cempresa.cd_sgrupo)
INNER JOIN vlfatura ON cempresa.cd_cadastro = vlfatura.cd_cadastro
WHERE (((ccobranca.cd_unimed)=865) AND ((ccobranca.cd_cobranca)>0)
AND ((cgrupo.cd_grupo)>0) AND ((csgrupo.cd_sgrupo)>0)
AND ((vlfatura.cd_valor)=0 Or (vlfatura.cd_valor)=1)
AND ((vlfatura.competencia) Between 200607 And 200607))
UNION SELECT ALL vlreceita.competencia AS competencia, vlreceita.cd_campo AS campo,
vlreceita.vl_receita AS valor
FROM (((ccobranca INNER JOIN cgrupo ON ccobranca.cd_cobranca=cgrupo.cd_cobranca)
INNER JOIN csgrupo ON cgrupo.cd_grupo=csgrupo.cd_grupo)
INNER JOIN cempresa ON csgrupo.cd_sgrupo=cempresa.cd_sgrupo)
INNER JOIN vlreceita ON cempresa.cd_cadastro=vlreceita.cd_cadastro
WHERE (((ccobranca.cd_unimed)=865) AND ((ccobranca.cd_cobranca)>0)
AND ((cgrupo.cd_grupo)>0) AND ((csgrupo.cd_sgrupo)>0)
AND ((vlreceita.cd_valor)=0 Or (vlreceita.cd_valor)=1)
AND ((vlreceita.competencia) Between 200607 And 200607)))
GROUP BY competencia, campo;