sql select records having count > 1 where at lease one record has value

后端 未结 5 1920
情深已故
情深已故 2021-02-13 18:20

I\'m trying to get all participants that have more than 1 record in the table where at lease one of those records has IsCurrent = 0 and IsActive = 1

This is what I have

5条回答
  •  独厮守ぢ
    2021-02-13 18:45

    Use it as a subquery and join to it:

    select * from 
    (
        SELECT  ParticipantId 
        FROM Contact
        WHERE (IsCurrent = 0 AND IsActive = 1 AND ContactTypeId = 1)
        Group by ParticipantId
        Having COUNT(ParticipantId) > 1
    ) base
    inner join Contact c on c.ParticipantId = base.ParticipantID
    WHERE (IsCurrent = 0 AND IsActive = 1 AND ContactTypeId = 1)
    

提交回复
热议问题