如何使用sql编写查询语句 用于查询学生的 各科成绩

2025-03-01 17:33:40
推荐回答(2个)
回答1:

declare @sql varchar(8000)
select @sql='select a.mname as 学生姓名'
select @sql=@sql+',sum(case c.fname when '''+fname+''' then b.score else null end )as '+fname from f
select @sql=@sql+' from member a left join score b on a.mid=b.mid left join f c on b.fid=c.fid group by a.mname'
print @sql
exec (@sql)

费了好劲,真麻烦,头一次搞这个东西

回答2:

Select a.MName,
sum(case when b.FName='语文' then c.成绩 else 0 end) As '语文' ,
sum(case when b.FName='数学' then c.成绩 else 0 end) As '数学',
sum(case when b.FName='英语' then c.成绩 else 0 end) As '英语',
sum(case when b.FName='历史' then c.成绩 else 0 end) As '历史'
From Member a,F b,Score c
where a.MID=c.MID and c.FID=b.FID
Group By MName