显示至少修改过2次的用户

时间:2014-01-13 12:58:41

标签: sql sql-server

我有两张桌子:

User:
ID, Name

UserChanges:
ID, UserID, ChangeDate

每次用户更改其名称时,都会在UserChanges中插入一个新行。 所以UserChanges包含几行具有相同UserID的行。

我想获取至少更改两次的User.name列表,其中一项修改是在2013年12月15日之后。

因此,首先选择UserChanges表中多次引用的所有用户。 在此列表中,选择在2013年12月15日之后更改的人。

1 个答案:

答案 0 :(得分:4)

由用户分组,然后计算更改,如果其中一个在指定日期或之后

select u.name
from user u
inner join userchanges c on c.userid = u.id
group by u.name
having count(c.id) > 1
and sum(case when ChangeDate >= '2013-12-15' then 1 else 0 end) > 0