先给20分,实现后100分酬谢!!学校要求统计一个老师的任课信息总数和分课数(一位老师可以兼任其他课程)
教师编号 id
课程名称 class
任课节数 num内容如下
id class num
1 语文 20
2 数学 10
3 英语 30
4 物理 20
2 物理 10
1 英语 10
2 物理 10
3 语文 11
4 体育 10
2 生物 10 统计要求 教师编号 语文 数学 英语 物理 体育 生物 总节数
1 20 0 10 0 0 0 30
2 0 10 20 10 40
3 11 30 41
4 20 10 30请问如何实现啊 (没有的以0显示!)
教师编号 id
课程名称 class
任课节数 num内容如下
id class num
1 语文 20
2 数学 10
3 英语 30
4 物理 20
2 物理 10
1 英语 10
2 物理 10
3 语文 11
4 体育 10
2 生物 10 统计要求 教师编号 语文 数学 英语 物理 体育 生物 总节数
1 20 0 10 0 0 0 30
2 0 10 20 10 40
3 11 30 41
4 20 10 30请问如何实现啊 (没有的以0显示!)
写插入sql:
insert into #临时表
select 教师编号,语文,null,null,null,null,null,count(*) from 内容表 group by id
...
依次为数学、英语、、、生物
最后写总输出查询sql
select * from #临时表 group by id
if exists(select id from sysobjects where id = object_id(N'TableA'))
drop table TableA
gocreate table TableA (
id nvarchar(10),
class nvarchar(10),
num float
)goinsert into TableA(id,class,num) values('1','语文',20)
insert into TableA(id,class,num) values('2','数学',12)
insert into TableA(id,class,num) values('3','物理',23)
insert into TableA(id,class,num) values('4','英语',20)
insert into TableA(id,class,num) values('1','语文',44)
insert into TableA(id,class,num) values('2','数学',67)
insert into TableA(id,class,num) values('3','物理',20)
insert into TableA(id,class,num) values('4','英语',78)
insert into TableA(id,class,num) values('1','语文',20)
insert into TableA(id,class,num) values('2','数学',54)goselect * from TableAgoselect id,
sum(case class when '语文' then isnull(num,0) else 0 end ) as '语文',
sum(case class when '数学' then isnull(num,0) else 0 end ) as '数学',
sum(case class when '英语' then isnull(num,0) else 0 end ) as '英语',
sum(case class when '物理' then isnull(num,0) else 0 end ) as '物理'
from TableA
group by id
sum(case class when '语文' then isnull(num,0) else 0 end ) as '语文',
sum(case class when '数学' then isnull(num,0) else 0 end ) as '数学',
sum(case class when '英语' then isnull(num,0) else 0 end ) as '英语',
sum(case class when '物理' then isnull(num,0) else 0 end ) as '物理'
--此处在客房端用循环生成
from TableA
group by id
只能建个 这样的表 教师编号 语文 数学 英语 物理 体育 生物 总节数
在delphi里计算