我正在写一个INNER JOIN
,它添加了像CompanyId等字段。
但在CASE
里面我的INNER JOIN
我在WHERE
之后得到一个错误
IR.MyId和ICB1.MyId上的错误说明
“多部分标识符无法绑定”
我对此查询的意图是在CASE
中添加INNER JOIN
。
所以第一列是A.CompanyId
。第二列将是CASE
语句,用于检查ID是否存在于另一个表中。如果没有,它将做另一个SELECT
声明,ELSE只是MyID
。
但是我在SELECT COUNT(*)
里面的CASE WHEN
上得到了一个错误。
任何帮助表示赞赏。谢谢。
INNER JOIN
(SELECT DISTINCT
A.CompanyId,
CASE
WHEN (SELECT count(*)
FROM Table1 IBC1
WHERE IR.MyId = ICB1.MyId) == 0
THEN 1
ELSE 0
END
FROM
cmp.CompanyNews A) E ON NP.CompanyId = E.CompanyId
我没有完整的查询,但如果它可行,我会采取以下方法:
...
CASE
WHEN ICB1_ID.ID IS NULL
THEN 1
ELSE 0
END [ColumnName]
FROM
...
INNER JOIN
(
SELECT DISTINCT A.CompanyId
FROM cmp.CompanyNews A
) E
ON NP.CompanyId = E.CompanyId
OUTER APPLY
(
SELECT TOP 1 ICB1.MyID ID
FROM Table1 IBC1
WHERE ICB1.MyId = IR.MyId
) ICB1_ID