您当前的位置: 首页 >  sql

[MSSQL]一道合并成绩最高科目的解决方法

发布时间:2012-03-28 08:22:13 ,浏览量:0

昨天在群里一位网友抛出这样的问题:

name   语文    数学     英语 张三    75    90       85 李四    80     85       85 获得表,查询每个 name 成绩最高的学科, 若有相同,并列 name    成绩    科目 张三    90      数学 李四    85      数学,英语

我的方案:

CREATE TABLE [dbo].[ChengJi2](
	[姓名] [nchar](10) NULL,
	[成绩] [int] NULL,
	[科目] nchar(100) NULL,

) ON [PRIMARY]
-------------------------------------
Create Function [dbo].[Getkemu](
	@姓名 char(10)=null)
returns  varchar(8000)
as
begin
      declare   @r   varchar(8000) 
      set   @r= ' ' 
      select  @r=@r+ ', '+ rtrim(CAST (科目 as varchar))   from ChengJi2 where 姓名=@姓名
      return   stuff(@r,1,2, ' ')
end
------------------------------------

Insert into ChengJi2(姓名,成绩,科目) SELECT B.*  FROM (
		select 姓名,MAX (成绩) 成绩  from(
		SELECT     姓名, 语文 as 成绩,'语文' 科目
		FROM         ChengJi 
		union all
		SEL
关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    109273博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0472s