SQL Query Excel – 如果找不到值,则返回“0”
我有一个简单的查询使用以下命令文本从SQL Server返回到Excel工作表的值。 但是,如果在Material_Location
表中找不到“ Material
值,则只是省略它。
如果在Material_Location
表中找不到Material
,如何修改以下代码以将On_Hand_Qty
的值返回为“0”
SELECT SO_Detail.Sales_Order, SO_Detail.SO_Line, SO_Detail.Material, SO_Detail.Order_Qty, Material_Location.On_Hand_Qty FROM SO_Detail INNER JOIN Material_Location ON SO_Detail.Material = Material_Location.Material ORDER BY SO_Detail.Sales_Order, SO_Detail.SO_Line
谢谢
即使没有匹配的logging存在于Material_Location
使用left outer join
SO_Detail
而不是inner join
SO_Detail
也将允许您仍然从SO_Detail
获取logging。
COALESCE
将遍历传递给它的每个参数,直到find一个不为null的参数
SELECT sd.Sales_Order, sd.SO_Line, sd.Material, sd.Order_Qty, COALESCE(ml.On_Hand_Qty,0) as On_Hand_Qty FROM SO_Detail sd LEFT OUTER JOIN Material_Location ml ON sd.Material = ml.Material ORDER BY sd.Sales_Order, sd.SO_Line