使用左连接空值不显示

using left join empty value don't shown

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' 空值的行 如果有人知道解决方案,请与我分享。谢谢

我的名声很低,所以我不能post图片

您具体提到了 Amount 列,但是 null 列应该与是否显示记录无关。

最可能的原因是 ACODE 对于有问题的特定记录也是 null,您需要更改 where 子句以指定 ACODE可以是 null:

... where (feestructure.ACODE = @aaa OR feestructure.ACODE IS null) ...

(我假设您正确地将 "aaa" 作为参数传递给您的查询。)

你的 WHERE 子句

feestructure.ACODE = aaa

只会 return ACODE 为 aaa 的行,这意味着帐户中没有匹配费用结构行的任何行都不会得到 returned,因为帐户的 ACODE 赢了不存在,因此不是 aaa。

因此,您需要在 WHERE 子句中添加一个条件来说明这一点:

WHERE (feestructure.ACODE = aaa OR feestructure.ACODE IS NULL)

我只是删除 where 子句并将 feestructure.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 ;