我有下面的查询。我想离开加入另一张桌子。我知道一个事实,查询应返回值,但值将返回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 :(得分:0)
左外连接从表A中生成一组完整的记录,其中包含表B中的匹配记录(如果可用)。如果没有匹配,则右侧将包含null。
答案 1 :(得分:0)
ON子句中的任何条件都是连接的一部分,因此任何包含AddressNo或ShipTp或ShortItemNo或LTNumber数据的行都将为NULL。
您可能希望将它们移动到WHERE。
你想要的结果是什么?