日期:2014-05-19  浏览次数:20449 次

刚才说的分组问题不清楚,已整理好:

表名:检测项目

项目编号   版本号 检测项目
01                   1         火灾自动报警系统
0101               1         消防控制室
010101           1         消防控制室位置1
010101           2         消防控制室位置2
010101           3         消防控制室位置3
010102           1         非直接通向室外的门
010102           3         非直接通向室外的门
010103           1         门的开启方向
010103           2         门的开启方向
010104           1         送、回风管防火隔断
010104           5         送、回风管防火隔断
010105           1         电气线路及管路设置
010106           1         抗干扰性
010107           1         标志
010108           1         "119 "直拨电话
......


上面的010101\010102\010103\010104有2到3个版本号,其余只有1个.

我想实现这样的结果:

例子1:
SELECT   *   FROM   检测项目   WHERE   版本号=2

结果:
项目编号   版本号 检测项目
01                   1         火灾自动报警系统
0101               1         消防控制室
010101           2         消防控制室位置2
010102           1         非直接通向室外的门
010103           2         门的开启方向
010104           1         送、回风管防火隔断
010105           1         电气线路及管路设置
010106           1         抗干扰性
010107           1         标志
010108           1         "119 "直拨电话
.....

结果说明:
1--[项目编号]不重复
2--[版本号]=2
3--如没有[版本号]是2的,取小于2的那条记录,上例:010102
目的就是把等于[版本号]的取出,不等于[版本号]的只取仅小于的那条记录.


例子2:
SELECT   *   FROM   检测项目   WHERE   版本号=5

结果:
项目编号   版本号 检测项目
01                   1         火灾自动报警系统
0101               1         消防控制室
010101           3         消防控制室位置3
010102           3         非直接通向室外的门
010103           2         门的开启方向
010104           5         送、回风管防火隔断
010105           1         电气线路及管路设置
010106           1         抗干扰性
010107           1         标志
010108   &nb