在左连接上获取空值

时间:2013-08-30 13:30:00

标签: sql sql-server left-join

我有下面的查询。我想离开加入另一张桌子。我知道一个事实,查询应返回值,但值将返回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

2 个答案:

答案 0 :(得分:0)

左外连接从表A中生成一组完整的记录,其中包含表B中的匹配记录(如果可用)。如果没有匹配,则右侧将包含null。

答案 1 :(得分:0)

ON子句中的任何条件都是连接的一部分,因此任何包含AddressNo或ShipTp或ShortItemNo或LTNumber数据的行都将为NULL。

您可能希望将它们移动到WHERE。

你想要的结果是什么?