1

我有以下 SQL 语句:

SELECT     C.LINKED_TABLE_ID AS CLIENT_DIWOR, I.STATUS AS AML_STATUS, dbo.CLIENT_MASTER.CLIENTCODE
FROM         AML_INFORMATION AS I INNER JOIN
                dbo.COMM_ENTRY AS C ON C.NAME_ID = I.CONTACT_ID AND C.TABLE_ID = 'C' AND C.PRIMARY_FLAG = 'Y' INNER JOIN
                dbo.CLIENT_MASTER ON C.LINKED_TABLE_ID = dbo.CLIENT_MASTER.DIWOR
WHERE I.CONTACT_ID = 234
    AND I.[STATUS] = 'CC'
    AND (CLIENT_MASTER.DIWOR = I.CONTACT_ID)
    AND (CLIENT_MASTER.POSTING_STATUS <> '')
    AND ((SELECT COUNT(CONTACT_ID) FROM AML_ID_DOCUMENT GROUP BY CONTACT_ID HAVING CONTACT_ID = 234) >1)

如果我运行它,它会返回 0 条记录,但是如果我删除最后一个 AND 语句AND ((SELECT COUNT(CONTACT_ID) FROM AML_ID_DOCUMENT GROUP BY CONTACT_ID HAVING CONTACT_ID = 234) >1),它会返回我期望的记录。

是否可以以这种方式使用 COUNT() ?顺便说一句,本例中的 COUNT() 返回 2 条记录,如果我将它包含在 SELECT 语句中,我也会返回 0 条记录。

谁能指出我正确的方向?

提前致谢。

4

3 回答 3

9

你展示的脚本不应该返回任何东西......你的部分可能看起来像这样

   and (Select Count(*) from AML_ID_DOCUMENT  where CONTACT_ID =I.CONTACT_ID)>1

虽然 ist 应该按原样工作......

于 2012-11-09T16:40:15.987 回答
6

最后一部分不应该是这样的:

AND EXISTS (SELECT CONTACT_ID FROM AML_ID_DOCUMENT
      WHERE CONTACT_ID = 234
      GROUP BY CONTACT_ID
      HAVING COUNT(CONTACT_ID)>1)
于 2012-11-09T16:38:14.340 回答
0

试试这个查询:

select count(portfolio_id) as porfolioCount 
from engineering_module_tracker_v2 
where r0_approval__category='Cat I' & 'Cat II';

猫意味着类别明智。

于 2017-09-05T12:45:52.530 回答