急,求一统计sql语句建视图
table stu 有字段
sid(学号),courseID(课程编号),ispg(是否评该门课)
_____________记录有
sid courseID ispg
0001 0001 1
0001 0002 0
0001 0003 1
0002 0002 1
0002 0004 0
----------------------------
要建立的视图
sid(学号) sumCourse(选了多少课程) sumPG(评了多少课程 ) 即
------------------结果
sid sumCourse sumPG
0001 3 2
0002 2 1
-----------------------
请问该怎么写sql语句啊
问题点数:20、回复次数:8Top
1 楼yongwin(最后一个ID)回复于 2005-11-25 21:59:51 得分 4
create view 名子
as
select sid,count(*) as sumcourse,sum(case ispg when 1 then 1 else 0 end)as sumPG
from @t
group by sidTop
2 楼yongwin(最后一个ID)回复于 2005-11-25 22:12:40 得分 0
不好意思刚才那个太冲忙了,做的不是很全,用这个吧:
测试环境:
---------------------------------
create table tt(sid char(4),courseID char(4),ispg int)
insert tt values('001','001',1)
insert tt values('001','002',0)
insert tt values('001','003',1)
insert tt values('002','002',1)
insert tt values('002','004',0)
go
create view aa
as
select sid,count(*) as sumcourse,sum(case ispg when 1 then 1 else 0 end)as sumPG
from tt
group by sid
go
select * from aa
drop view aa
drop table ttTop
3 楼ReViSion(和尚)回复于 2005-11-25 22:23:16 得分 4
select sid,count(courseID),sum(ispg)
from stu
group by sidTop
4 楼ppact(天下有雪)回复于 2005-11-25 23:53:45 得分 4
select sid,count(coruseID),sum(ispg)
from stu
group by sidTop
5 楼lxzm1001(*~悠悠蓝星梦~*)回复于 2005-11-26 00:12:14 得分 4
select sid,count(courseid)as sumcourse,sum(ispg) as sumpg from tt group by sidTop
6 楼wangkenping(找有感觉的妹妹)回复于 2005-11-26 08:27:53 得分 4
create view v_stu
as
select sid,count(*) as sumcourse,sum(case ispg)as sumPG
from stu
group by sid
go
select * from v_stuTop
7 楼liuke6172(名扬)回复于 2005-11-26 08:37:32 得分 0
问题解决了
----谢谢yongwin(最后一个ID)大哥
因为只有你的思想是对的
但是你的还有一点问题
改成
select sid,count(*) as sumcourse,sum(case ispg when 1 then 1 end)as sumPG
from stu group by sid
就没问题了
-----------------
谢谢各位,马上结帖Top
8 楼liuke6172(名扬)回复于 2005-11-26 08:38:50 得分 0
不对
是大家都对
我错了
结帖Top




