左连接导致错误的值
Left join resulting in wrong values
当我执行这个查询时:
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
我得到以下结果:
但是当我尝试与另一个 table 进行左连接时(因此在我可以与第三个连接以获得与“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,但值完全错误:
我做错了什么?
非常感谢!
进行左连接时,您在连接的 table 中命中了多行。
通过对结果进行分组,您可以对这些行中的每个条目求和,从而得到您想要的结果的倍数。
例如(第一行):29,175.57/3,241.73 = 9;这意味着您在连接的 table.
中有 9 行
当我执行这个查询时:
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
我得到以下结果:
但是当我尝试与另一个 table 进行左连接时(因此在我可以与第三个连接以获得与“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,但值完全错误:
我做错了什么?
非常感谢!
进行左连接时,您在连接的 table 中命中了多行。 通过对结果进行分组,您可以对这些行中的每个条目求和,从而得到您想要的结果的倍数。
例如(第一行):29,175.57/3,241.73 = 9;这意味着您在连接的 table.
中有 9 行