SQL 自链接应用

按要求统计下面两个字段

F_Bh F_Je
1          10
2           20
3           10
5           50
6           10
8           10
9           20

要求得到结果如下

Bh1 Bh2 Je
1 3 40
5 6 60
8 9 30

F_Bh 编号连续的则统计一次,并且记录起始编号和终止编号

解决思路是把连续编号的字段给他重新编一个相同内容的字段,关键技巧在于怎样获得这个新字段,下面是通用的自连接方式。

if object_id('[tb]') is not null drop table [tb]
go
create table [tb] (F_Bh varchar(10),F_Je int)
insert into [tb]
select '011',20 union all
select '012',20 union all
select '013',10 union all
select '018',10 union all
select '019',20


select min(t.F_Bh)Bh1,max(t.F_Bh)Bh2, sum(F_Je) JE from
(
select F_Bh,F_Je,F_Bh-(select count(*) from tb b where a.F_Bh>=b.F_Bh) groupid
from tb a
) t
group by groupid



类别:Sql 查看评论
posted @ 2010-01-26 00:15  一 点  阅读(168)  评论(0编辑  收藏  举报