2013-08-30 2 views
-1

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

SELECT 
    ss.NDC, 
    ss.ShipToAddressNo, 
    ss.QuantityShipped, 
    c.AccrualType, 
    ss.ExtendedPrice ExtendedPrice, 
    c.AccrualAmount CBAccrualAmount 
FROM 
    SalesSummary ss left join ChargebackAccruals c on 
     ss.ClassOfTrade = c.TradeClass and 
     c.AddressNo is null and 
     c.ShipTo is null and 
     c.ShortItemNo is null and 
     c.LotNumber is null and 
     ss.InvoiceDate = @RunDate and 
     ss.InvoiceDate between AccrualBeginDate and AccrualEndDate 
+0

Не могли бы вы предоставить образец набора данных, где вы видите проблему? – Taemyr

ответ

0

Любое условие в предложении ON является частью соединения, поэтому любая строка с данными в AddressNo или ShipTp или ShortItemNo илиLotNumber будет NULLED.

Возможно, вы захотите переместить их в ГДЕ.

Что вы хотите получить?

+0

Это было прямо перед тем, как я прочитал ваше сообщение. Благодарю. – Jeff

0

левое внешнее объединение производит полный набор записей из таблицы А, с совпадающими записями (если таковые имеются) в таблице B. Если совпадения нет, правая сторона будет содержать нуль.

+0

Матч только что. Когда я делаю нормальное соединение, я получаю фактические значения столбца, где, как когда я делаю левое соединение, они возвращают нуль ... – Jeff

+1

Конечно, они возвращают null. Вы говорите, что присоединяетесь только там, где 'c.ShipTo is null ' – podiluska

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