日期:2014-05-17  浏览次数:21021 次

问一个SQL问题 如何将指定字段的重复记录去掉(在线等 解决就给 40分)
问题是这样的   :

我有一张表
商品名称               审核                   条形码                       问题批次     登记时间
没有名称                 -1         6901028300056 NULL 2007-02-03   13:43:20.000
椰岛鹿龟酒精制 1 6901160001507   NULL 2007-01-24   00:00:00.000
健儿消食口服液 1 6901235894454 NULL 2007-02-03   13:48:37.000
舒肝降脂胶囊 3 6901235897453 0603561 2007-02-03   13:34:51.000
舒肝降脂胶囊 3 6901235897453 0603561 2007-02-03   13:42:39.000
布洛芬口服液 0 6901235897455 NULL 2007-02-05   10:51:15.000
西瓜霜润喉片 0 6901235897456 NULL 2007-02-05   10:47:36.000
500ml海天铁   1 6902265051015 NULL 2007-02-03   13:46:21.000
雅士利v鱼                 0         6902402030392                   NULL2007-02-0511:06:54.000
眩晕宁(                 0         6902589647123                 NULL2007-02-03   13:51:38.000
玉龙银丝面   0 6904442000113   NULL 2007-01-25   00:00:00.000
玉龙银丝面   0 6904442000113 NULL 2007-02-05   11:05:56.000
牛磺酸颗粒 0 6904586785412 NULL 2007-02-03   13:49:41.000
牛磺酸颗粒 0 6904586785412 2007-02-08   18:34:00.000
牛磺酸颗粒 0 6904586785412 2007-02-08   19:27:00.000
牛磺酸颗粒 0 6904586785412 2007-02-09   10:05:00.000
大家看下表会发现   有些条形码是相同的   现在我老板想让我   只保留   一条最新的  
就是说   条形码不能重复   而且保留的那一条是最新的记录   就高手帮忙解决啊

------解决方案--------------------
SELECT 商品名称,审核,条形码,问题批次,登记时间 FROM Dv_Test INNER JOIN
(SELECT DISTINCT(条形码) AS dist_code,MAX(登记时间) AS max_time FROM Dv_Test GROUP BY 条形码) AS seartable ON
seartable.dist_code = Dv_Test.条形码 AND seartable.max_time = Dv_Test.登记时间

试一下,经我测试是没有问题的,时间取的最新时间,行了给分哟。呵呵