基础Sql 语句问题,大侠帮忙
怎样写语句解决下面两个问题?
问题1:
有表 T1(IDs,NameID,KeyID1,KeyID2,KeyID3,KeyID4):
Ids NameID KeyID1 KeyID2 KeyID3 KeyID4
1 A 101 102 104 201 204 302 401
2 B 101 103 201 301 303
3 C 104 105 203 303 402
要怎样写Sql语句才能达到这种效果?(即:统计每个选项的数量)
Key Num
101 2
102 1
103 1
104 2
105 1
201 1
202 2
203 1
204 1
301 1
302 1
303 2
401 1
402 1
——————————————————————————————————
问题2:
表 T2(IDs,NumList):
IDs NumList
1 100
2 101
3 200
4 150
5 120
6 102
能不能统计出T2中NumList字段不连续的数字区间?
得如下结果:
不连续区间 差数
102-120 18
120-150 30
150-200 50
------解决方案--------------------KeyID1
101 102 104
最多个数确定吗?,是不是都是三位?
------解决方案--------------------问题2 :
select a.IDs || ' - ' || b.IDs as "不连续区间 ",a.Numberlist - b.Numberlist as "差额 "
from T2 a left join T2 b on a.IDs> b.IDs
where b.IDs = (select max(IDs) from student where IDs <a.IDs) and (a.Numberlist - b.Numberlist <> 1)
------解决方案--------------------问题2:
create table T2(IDs int, NumList int)
go
insert t2 select 1, 100
union all select 2, 101
union all select 3, 200
union all