求助:SAP SQL查询LineText为空时无结果,需返回全部数据
SAP SQL查询问题解决方案
你的问题出在使用了INNER JOIN,它仅会返回ODLN(T0)和DLN10(T1)中DocEntry完全匹配的记录。如果T1中没有对应T0的记录,这些T0的符合条件的记录都会被排除(注:LineText为空本身不会被INNER JOIN过滤,除非有额外条件限制,你遇到的情况大概率是T1无匹配行)。
要实现返回所有符合WHERE条件的T0记录,无论T1是否有匹配或LineText是否为空,只需将INNER JOIN替换为LEFT JOIN(左外连接):
SELECT T0.TaxDate, T0.NumAtCard, T1.LineText, T0.TrackNo, T0.U_TrackRT1 FROM ODLN T0 LEFT JOIN DLN10 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.TaxDate =[%0] AND T0.Cardcode =[%1]
如果希望把LineText的NULL值显示为更友好的内容(比如空字符串),可以用COALESCE函数处理:
SELECT T0.TaxDate, T0.NumAtCard, COALESCE(T1.LineText, '') AS LineText, T0.TrackNo, T0.U_TrackRT1 FROM ODLN T0 LEFT JOIN DLN10 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.TaxDate =[%0] AND T0.Cardcode =[%1]
内容的提问来源于stack exchange,提问作者P1 inMotion
相关产品推荐
相关产品推荐

