作者winall (winall)
看板Database
标题Re: [SQL ] 如何删除Table中不同列且不同栏位重覆值?
时间Fri Apr 1 11:10:43 2016
select A.*
from Table A left join
(
select distinct C.ID
from(
select distinct ID,OldValue
from Table) C join
(
select distinct ID,NewValue
from Table) D
on C.ID=D.ID and C.OldValue=D.NewValue
)B
on A.ID=B.ID
where B.ID is null
如有时间条件自行加上
※ 引述《rockchangnew (rock)》之铭言:
: ※ 引述《seabok (思念,留在1999)》之铭言:
: : 资料库名称:MS SQL
: : 资料库版本:2008
: : 内容/问题描述:
: : 请问各位贤拜:
: : 有一Table A如下:
: : ID UPDate OldValue NewValue
: : 001 2016/3/24 AAA BBB
: : 002 2016/3/23 CCC DDD
: : 002 2016/3/24 DDD CCC
: : 需求是想捞出在日期区间内有异动的资料,也就是最终的OldValue <> NewValue。
: : 可是在表中第2、3列,ID=002的资料在3/23先是自CCC改成DDD,
: : 然後在3/24又自DDD改回CCC,最终结果其实是没有异动。
: : 请问SQL该如何下才能直接排除这种情形呢?(也就是只有ID=001这笔符合)
: : 先感谢大家了~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.139.97.85
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1459480245.A.C21.html
※ 编辑: winall (220.139.97.85), 04/01/2016 11:31:56