2015-03-27 1 views
1

Когда я выполнить этот запрос:Выравнивание по левому краю в результате неправильных значений

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» идентификаторы, но с совершенно неправильными значениями:

enter image description here

Что я делаю неправильно?

Большое спасибо!

+0

Спасибо Ameya, я сделал, но результат точно такой же. –

ответ

6

При выполнении левого соединения вы нажимаете несколько строк в объединенной таблице. Сгруппировав результат, вы суммируете каждую запись в этих строках, в результате чего кратно вашему желаемому результату.

Например, (row one): 29,175.57/3,241.73 = 9; Это означает, что у вас есть 9 строк в объединенной таблице.

+1

Спасибо! что я сделал: На левой стороне, вместо имени таблицы, я сделал «select unique conta_analitica из таблицы». –

Смежные вопросы