2013-03-20 2 views
0

Итак, у меня есть 2 таблицы, и мне нужно получить сумму одного столбца. Но строки, которые мне нужно выбрать, имеют критерии в другой таблице. Я придумал этот запрос, но он всегда возвращает null.Получите сумму столбца, основанного на данных другой таблицы

SELECT sum(secondary_lpt.loan_amount) 
FROM secondary_lpt 
LEFT JOIN loan_log ON loan_log.loan_guid = secondary_lpt.loan_guid 
WHERE (
    secondary_lpt.lock_Date 
    BETWEEN date('2013-02-19 15:25:55') 
    AND date('2013-04-19 15:25:55') 
) 
AND (
    loan_log.loan_ms_funding = NULL 
    OR loan_log.loan_ms_funding = '' 
) 
AND (
    loan_log.loan_transdetail = 'Active Loan' 
) 

Я с трудом формулировку, что я пытаюсь сказать, так что я думаю, что может быть частью проблемы.

+0

Вы подтвердили, что ваши предложения 'join' и' where' фактически возвращают вам строки, которые вы хотите? Замените 'sum()' на '*' и добавьте ограничение, чтобы проверить, что вы возвращаете строки. Каков тип данных «secondary_lpt.loan_amount»? – scwagner

+2

Измените это 'loan_log.loan_ms_funding = NULL' на' loan_log.loan_ms_funding IS NULL', и ваше последнее условие 'loan_log.loan_transdetail = 'Active Loan'' изменит это соединение на внутреннее соединение –

+0

@scwagner я могу получить сумму, если i не существует предложения WHERE. его тип int, кстати. – smarble

ответ

1

Если поля таблицы в левом члене соединения используются в предложении where, оно обычно работает как внутреннее соединение (оно ожидает, что столбец будет иметь значение). Итак, переместите ur где предложение в положение ON

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