2015-10-07 6 views
0

В таблице A (т. Е. Charges) У меня есть данные, и в B (т. Е. gdh) есть сопоставления.SQL left join дает неправильные результаты

По какой-то причине мой запрос не отображает строки без сопоставлений с нулевым значением. Любые мысли?

select a.chargeable_object, a.debitor, a.source_bu, a.target_cc, a.target_bu, b.L5_CLUSTER, sum(a.charge) 
from charges a 
    left join gdh b on a.target_cc = b.department_id 
where a.account not like ('H%') 
    and a.chargeable_object is not null 
    and a.source_bu in ('301','161','303') 
    and a.debitor not in ('0315X02', '0961901', '0972023', '0972024',......) 
group by a.chargeable_object, a.debitor, a.source_bu, a.target_cc, a.target_bu, b.L5_CLUSTER 
+0

Вы не фильтруете из gdh, поэтому проблема заключается в ваших данных, я думаю. Мы не можем помочь без каких-либо данных, чтобы воспроизвести проблему. –

+0

Непонятно: вы хотите включить сопоставление с нулевыми значениями или нет? –

+1

Угадайте, это потому, что все строки в таблице зарядов, соответствующие всем условиям, имеют соответствующую строку в таблице gdh. – Boneist

ответ

0

Это поможет увидеть некоторые примеры данных. Как бы то ни было, столбец a.target_cc содержит нулевые значения? Я бы ожидал, что они будут отфильтрованы.

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