我得到了一个名为Person的表格,它包括ID,名字,姓氏,DOD,创建日期,修改日期,修改编号。我试图检查人员的姓名在特定时间段内是否发生了变化。这是一个示例表。 我想知道在2017年1月更改名字或姓氏的人。我期待输出中的1和2。即时通讯使用的是SQL Server 2008的如何检查一个人的名字是否被更改
0
A
回答
1
您方便有修改号码,我以为是连续的。所以,你可以用加入和一些逻辑做到这一点:
select p.*, pprev.firstname, pprev.lastname
from persons p join
persons pprev
on pprev.id = pprev.id and
pprev.modnum = p.modnum - 1
where p.moddate >= '2017-01-01' and
p.moddate < '2017-02-01' and
(p.firstname <> pprev.firstname or
p.lastname <> pprev.lastname
);
如果你只是想这个人的ID,然后使用select distinct p.id
。
注意:这假定名称不是NULL
。如果处理NULL
很重要,则逻辑需要多一点比较。
+0
选择P *,pprev.firstname,pprev.lastname 从人p加入 者上p.id = pprev.id和 pprev.modnum = p.modnum pprev - 1 其中p.moddate> =“2017 -01-01'和 p.moddate <'2017-02-01'和 (p.firstname <> pprev.firstname或 p.lastname <> pprev.lastname ); – user1469630
0
加入表本身的ModifyNo
select P1.*
from Person P1
left join Person P2
on P1.ModifyNo = P2.ModifyNo +1
where P1.ModifyDate between @Date1 and @Date2
and (P1.FirstName <> P2.Firstname
or P1.LastName <> P2.Lastname)
相关问题
- 1. 如何检查表单字段数据是否被更改?
- 2. 如何检查PDF是否被修改
- 3. 如何检查一个字段是否已被声明?
- 4. 如何检查文件是否被创建/删除/更改(Bash)
- 5. Rails如何检查session_id cookie是否被客户端更改
- 6. AS2检查字符串是否更改或功能被触发
- 7. 检查单词是否大写,只更改第一个字母
- 8. 检查IList是否更改?
- 9. Javascript:如何检查用户是否更改域名?
- 10. 如何检查一个字符是否是一个撇号?
- 11. 如何检查一个对象是否是一个字符串?
- 12. 如何检查是否一个模式被纳入另一
- 13. 如何检查一个字符串是否是纯字母?
- 14. 检查一个文件是否在Python中被修改
- 15. 如何检查数字是否可以被另一个数字(Python)整除?
- 16. iOS检测标签是否被更改
- 17. vb.net如何检查一个字符串是否有某个字
- 18. 如何检查一个函数是否是匿名函数R
- 19. 检查文件是否已被修改
- 20. 检查URL是否被篡改
- 21. 检查EditText是否被修改
- 22. 使用Node.js,我如何检查一个域名是否被注册?
- 23. 如何检查一个整数数组是否被排序?
- 24. 如何检查一次是否有多个按键被按下?
- 25. Common Lisp:如何检查一个插槽是否被绑定? (CLOS)
- 26. 如何检查一个键是否在Linux中被按下?
- 27. 如何检查一个方法是否已被调用?
- 28. 如何检查一个选项卡是否被点击?
- 29. 如何检查一个链接是否已被点击在php
- 30. 如何检查一个php文件是否被模糊处理?
为什么不选择“4”? –
4也应该在输出中。 – user1469630