sql中如何取重复的数据取时间最近的一条?

上传的图被百度吃了。有字段CZYH(住院号),IZRBQ(编码),CZRBQ(编码名称),DSJ(时间)。现在要获取CZYH(有重复,因为病人转不同的科室)病人住院号最新... 上传的图被百度吃了。
有字段 CZYH(住院号),IZRBQ(编码),CZRBQ(编码名称),DSJ(时间)。
现在要获取CZYH(有重复,因为病人转不同的科室)病人住院号最新的转科编码和名称。不管之前CZYH转了几次科室,现在只要取最新的转入的科室。
展开
 我来答
iambise
推荐于2017-11-24 · TA获得超过714个赞
知道小有建树答主
回答量:834
采纳率:50%
帮助的人:505万
展开全部
既然数据都重复,就时间不同,那就取max(时间)就行了吧
select 重复数据的列名1,重复数据的列名2,....,max(时间列) from table group by 重复数据的列名1,重复数据的列名2,....
追问
我想在后面加个重复了的czyh 但是时间没有重复的 czyh 验证下,怎么加,我加了报错误。
追答
select * from table a inner join (select czyh,max(dsj ) from table group by czyh) b on a.czyh =b.czyh and a.dsj = b.dsj
区拉文70
2011-12-15 · TA获得超过146个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:146万
展开全部
select * from 表A as a inner join
(
select czyh,max(DSJ) as maxdsj From 表A Group by czyh
) as b
on a.czyh=b.czyh and dsj=b.dsj

如果你有自增长字段,用自增长字段来max一样的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d84c4f62d
2011-12-16 · 超过27用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:62.4万
展开全部
有时间列就取最大时间列
有自增的id就去最大id

如果是想返回一个记录集,并且有时间列的话可以这么做
select 重复列,时间列,其余列
inner join (select 重复列,max(时间列) as 时间列 from 表 group by 重复列) AS T2
on t1.重复列=t2.重复列 and t1.时间列 =t2.时间列
from 表 AS T1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
茶菊花
2011-12-15 · TA获得超过183个赞
知道小有建树答主
回答量:296
采纳率:100%
帮助的人:211万
展开全部
比如你数据库中有一个表tab(姓名name,登陆时间logTime)姓名有重复的名叫A

select top 1 * from tab where name='a' order by logTime desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_神__仙_
2011-12-15 · TA获得超过1257个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:530万
展开全部
select * from table t1 ,(select top(dsj) as dsj,czyh from table group by czyh) as t2
where t1.dsj=t2.dsj and t1.czyh =t2.czyh
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式