求一段sql语句。

houseer 2016-11-10 03:26:10
表1

班级代码 姓名 得分合计
1 张三 ?
2 李四 ?


表2:

班级代码 姓名 科目 得分
1 张三 数学 80
2 张三 语文 98
2 李四 英语 70
2 李四 数学 65

想用一条语句计算表1的得分合计
班级代码和姓名 两个字段同时匹配时, 各科成绩的合计。

求解。 多谢高手




...全文
242 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-11-10
  • 打赏
  • 举报
回复
LEFT JOIN --没成绩时显示0 改为 INNER JOIN --没成绩时不显示
中国风 2016-11-10
  • 打赏
  • 举报
回复
或 e.g.


SELECT  a.* ,
        ISNULL(b.得分, 0) AS 得分
FROM    表1 AS a
        LEFT  JOIN ( SELECT 班级代码 ,
                            姓名 ,
                            SUM(得分) AS 得分
                     FROM   表2
                     GROUP BY 班级代码 ,
                            姓名
                   ) AS b ON b.班级代码 = a.班级代码
                             AND b.姓名 = a.姓名
中国风 2016-11-10
  • 打赏
  • 举报
回复
e.g.
SELECT  a.* ,
        ISNULL(b.得分, 0) AS 得分
FROM    表1 AS a
        CROSS APPLY ( SELECT    SUM(得分)
                      FROM      表2
                      WHERE     班级代码 = a.班级代码
                                AND 姓名 = a.姓名
                    ) b ( 得分 )
houseer 2016-11-10
  • 打赏
  • 举报
回复
听说用in会影响效率, 又不用in的办法吗?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧