求一条sql语句
bh rq sl
0001 20000403 23
0001 20000403 280
0001 20000404 40
0001 20000504 50
0002 20000408 203
0003 20000508 260
求每一个月数量大于250的纪录
结果
0001 200004 343
0003 200005 260
怎么写这条sql语句?
问题点数:10、回复次数:9Top
1 楼internetcsdn(2003-8-7 9:20:26)回复于 2004-05-02 14:19:11 得分 0
结果集的中间列是怎样得出来的啊?Top
2 楼passionke(每一步都改变未来,却只能有一种结局!)回复于 2004-05-02 14:23:32 得分 0
select bh ,year(rq)&month(rq) as ym ,s1 where s1 > 250Top
3 楼maregister(夜星)回复于 2004-05-02 14:35:38 得分 0
select bh,year(rq)+month(rq) as ym,sl where sl>250Top
4 楼xh800810(黑)回复于 2004-05-02 14:43:15 得分 0
select bh ,rq,sum(sl)
from table
group by rq
having sum(sl)>250;
没验证不过应该对了吧Top
5 楼liang922(*良*朋好友)回复于 2004-05-02 15:41:14 得分 0
select a.bh,sum(a.sl)
from (select bh,convert(t.rq,varchar(6)),sl
from tb t) a
group by a.bhTop
6 楼liang922(*良*朋好友)回复于 2004-05-02 15:58:40 得分 0
测试:
create table test2
(
bh varchar(4),
rq varchar(8),
sl float
)
go
insert into test2
select '0001','20000403', 23 union all
select '0001','20000403', 280 union all
select '0001','20000404', 40 union all
select '0001','20000504', 50 union all
select '0002','20000408', 203 union all
select '0003','20000508', 260
go
select a.bh,a.rq,sum(a.sl) as sl
from
(select t.bh,convert(varchar(6),t.rq) as rq,sl
from test2 t) a
group by a.bh,a.rq
having sum(a.sl) > 250
测试结果:
0001 200004 343
0003 200005 260
Top
7 楼luckds(ferrari)回复于 2004-05-02 21:43:01 得分 10
bh rq sl
0001 20000403 23
0001 20000403 280
0001 20000404 40
0001 20000504 50
0002 20000408 203
0003 20000508 260
select bh,substring(rq,1,6),sum(sl) as zsl from table (表名)
group by bh,substring(rq,1,6)
having sum(sl) >250
结果
0001 200004 343
0003 200005 260
Top
8 楼FEB15(张郎)回复于 2004-05-02 23:17:00 得分 0
学习Top
9 楼internetcsdn(2003-8-7 9:20:26)回复于 2004-05-02 23:49:10 得分 0
同意楼上的楼上Top




