请教一下SQL查询

数据库用的sqlserver,表字段为cardNo,left_eye,right_eye,check_type,check_time,分别表示卡号,左眼视力,右眼视力,检... 数据库用的sqlserver,表字段为cardNo,left_eye,right_eye,check_type,check_time,分别表示卡号,左眼视力,右眼视力,检查类型(裸眼、矫正),检查时间
我想问一下能不能只用一条SQL语句查询出同一个卡号下最近一次的裸眼检查记录和最近一次的矫正检查记录,谢谢!!!
展开
 我来答
badkano
2018-10-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885373
团长

向TA提问 私信TA
展开全部

如果查询固定卡号:

select top 1 * from 表 where cardno='xxxxx' order by check_time desc

如果查询所有卡号的:

select t.* from
(select *,row_number() over (partition by cardno order by check_time desc) rn from 表) t where rn=1

楼上那个是骗钱的,没啥水平,别相信他,你看他回答记录就知道了。

追问
我就是想查一个固定卡号的最近一次的裸眼检查记录和最近一次的矫正检查记录,是两条记录,有一个check_type字段,而且只用一条SQL语句。
你给我的SQL只能查出该卡号最近一次的检查记录
追答
select t.* from
(select *,row_number() over (partition by check_type order by check_time desc) rn from 表 where cardno='xxxxx') t where rn=1
grace23450
2018-10-30 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7081
采纳率:77%
帮助的人:2342万
展开全部
可以,但是会很复杂。。
追问
能把语句发给我参考下吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式