首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求用sql或者存储过程写出要求查询解决思路

2012-09-13 
求用sql或者存储过程写出要求查询zkzh(准考证号,共12位)xm(姓名)sfzh(身份证号)030603101423周光辉4408037

求用sql或者存储过程写出要求查询
zkzh(准考证号,共12位)xm(姓名)sfzh(身份证号)
030603101423周光辉440803780508111
040105101423周光辉440803780508111
060210101423周光辉440803780508111
040112101423周光辉440803780508111
010101109425陈娟450202801201002
010110109425陈娟450202801201002
010112109425陈娟450202801201002
010101108179张三350181820728326

提示:同一个姓名及身份证号可能对应一个或者多个准考证号(zkzh)。
要求:
1、当有姓名及身份证号对应的只有一个准考证号(zkzh)时,则查询出该条信息
2、当姓名及身份证号对应多个准考证号(zkzh)时,只需查出其中一个准考证号(这里要注意了:要求:该准考证号的第5到第6两位(表中标记红色值)对应的数值是相同姓名及身份证号对应的几个准考证号中最大值)对应的信息。

(即如果有多个准考证号的话就只要第5第6两位数值是最大的准考证号,最后要求是每个身份证号+姓名只对应有一个准考证号)



(要求查询结果)
zkzh(准考证号,共12位)xm(姓名)sfzh(身份证号)
040112101423周光辉440803780508111
010112109425陈娟450202801201002
010101108179张三350181820728326


如觉得题意不明,请提出来。谢谢

[解决办法]

SQL code
--zkzh(准考证号,共12位) xm(姓名) sfzh(身份证号)select *from tb twhere not exists (select 1 from tb where xm=t.xm and sfzh=t.sfzh        and convert(int,substring(zkzh,5,2)) > convert(int,substring(t.zkzh,5,2)))
[解决办法]
SQL code
select * from test a where right(LEFT(a.zkzh,6),2)=( select max(right(LEFT(B.zkzh,6),2))  from test b where a.xm =b.xm and a.sfzh =b.sfzh )
[解决办法]
SQL code
select * from test a where SUBSTR(a.zkzh,5,2)  =( select SUBSTR(b.zkzh,5,2)  from test b where a.xm =b.xm and a.sfzh =b.sfzh ) 

热点排行