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 查看评论