BEGIN
SELECT DISTINCT
caccounts.ACODE,
caccounts.TITLE,
feestructure.Amount
FROM
caccounts
LEFT OUTER JOIN feestructure ON caccounts.ACODE = feestructure.FeeHeadCode
where
feestructure.ACODE=aaa
GROUP BY feestructure.ACODE,feestructure.FeeHeadCode;
END
以下是内连接,其中'aaa'值在运行时获取...但是'Amount'为null的行未显示 如果有人知道解决方案,那么请与我分享。感谢
我的声誉非常低,这就是我无法发布图片的原因
答案 0 :(得分:1)
您具体提到了Amount
列,但该列null
应该与是否显示记录无关。
最可能的原因是ACODE
对于相关特定记录也null
,您需要更改where
子句以指定ACODE
可以null
:
... where (feestructure.ACODE = @aaa OR feestructure.ACODE IS null) ...
(我假设您正确传入" aaa"作为查询的参数。)
答案 1 :(得分:1)
的WHERE子句
feetructure.ACODE = aaa
只会返回ACODE为aaa的行,这意味着不会返回没有匹配费用结构行的caccounts中的任何行,因为caccounts的ACODE不会存在,因此不是aaa。
因此,您需要在WHERE子句中添加一个条件来解释该条件:
WHERE (feestructure.ACODE = aaa OR feestructure.ACODE IS NULL)
答案 2 :(得分:0)
我只是删除where子句并在左连接中放置feetructure.ACode = aaa
SELECT DISTINCT
feehead.ACODE,
feehead.TITLE,
feestructure.Amount
FROM
feehead
LEFT JOIN feestructure ON feestructure.FeeHeadCode = feehead.ACODE and feestructure.ACode=aaa
GROUP BY feehead.ACode,feehead.TITLE ;