SELECT
COUNT(*), PERSON_ID
FROM
SGT_PERSON_ACCOUNT SPAT(NOLOCK)
WHERE
ACCOUNT_STATUS_VALUE IN ('ACTV','RFND')
GROUP BY
PERSON_ID
HAVING
COUNT(PERSON_ID) > 1
在这里,我只是想确保它返回的记录计数应该大于一个,其帐户状态应该是任何一个'ACTV'和'RFND'状态的组合。
但是,如果任何人员ID的“RFND”状态仅为“ACTV”,则不应返回。
示例:
人员标识1100具有两个状态均为“ACTV”的帐户。人员标识1200具有两个状态均为“RFND”的帐户。人员标识1300具有两个状态均为“ACTV”和“RFND”的帐户。
我的查询应仅返回1300个人员标识
4条答案
按热度按时间lvjbypge1#
选择每种类型仅具有一个状态值的所有人员:
qnakjoqk2#
rbpvctlc3#
如果您只需要确定哪些PERSON_ID符合您的标准:
如果您需要获取关联信息沿着他们的PERSON_ID:
xqnpmsa84#
编辑
这里有一个证明,在
SELECT
中使用COUNT(*)
不会改变任何事情。