左连接导致错误的值

时间:2015-03-27 11:44:05

标签: sql oracle left-join

执行此查询时:

select CONTA_ANALITICA_GERAL,
    DESIGNACAO_CC as CENTRO_CUSTO,
    sum(VALOR) as TOTAL
from VER_CNTORC_REAL_MES
where ANO = EXTRACT(year from sysdate)
    and MES = 2
    and CONTA_ANALITICA_AUXILIAR > 0
    and CONTA_FINANCEIRA_GERAL like '62%'
group by CONTA_ANALITICA_GERAL,
        DESIGNACAO_CC

我得到以下结果:

enter image description here

但是当我尝试与另一个表进行左连接时(所以在我可以与第三个连接以获得与“conta_analitica_geral”字段相关联的名称)之后使用此查询:

select A.DESIGNACAO_CC,
       A.CONTA_ANALITICA_GERAL,
       B.CONTA_ANALITICA,
       sum(A.VALOR) as TOTAL
from VER_CNTORC_REAL_MES A
left join VER_MOVIMENTOS_CNT B on A.CONTA_ANALITICA_GERAL = B.CONTA_ANALITICA
where A.MES between 1 and 12
      and A.ANO = 2015
      and A.MES = 2
      and A.CONTA_ANALITICA_AUXILIAR > 0
      and A.CONTA_FINANCEIRA_GERAL like '62%'
group by A.DESIGNACAO_CC,
         A.CONTA_ANALITICA_GERAL,
         B.CONTA_ANALITICA

我得到的结果与完全相同的结果数相同,“conta_analitica”ID相同,但值完全错误:

enter image description here

我做错了什么?

非常感谢!

1 个答案:

答案 0 :(得分:6)

在执行左连接时,您在连接表中点击了几行。 通过对结果进行分组,您可以汇总这些行中的每个条目,从而产生所需结果的倍数。

例如(第一行):29,175.57 / 3,241.73 = 9;这意味着你在连接表中有9行。