DROP TABLE 成绩表
GO
CREATE TABLE 成绩表(班组 VARCHAR(10),姓名 VARCHAR(6),学科 VARCHAR(4),成绩 INT)
GO
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','王小明','数学',100) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','王小明','语文',98)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','王小明','英语',76) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','李小东','数学',97)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','李小东','语文',99) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('一班','李小东','英语',85)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','刘小刚','数学',100) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','刘小刚','语文',100)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','刘小刚','英语',96) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','张小英','数学',96)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','张小英','语文',88) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','张小英','英语',66)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','周小侠','数学',84) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','周小侠','语文',98)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('二班','周小侠','英语',76) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张大利','数学',99)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张大利','语文',100) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张大利','英语',100)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张冬杰','数学',50) INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张冬杰','语文',88)
INSERT INTO 成绩表(班组,姓名,学科,成绩) VALUES('三班','张冬杰','英语',46)
--竖表变横表
SELECT 班组,
姓名,
SUM(CASE 学科 WHEN '数学' THEN 成绩 ELSE 000 END) AS 数学,
SUM(CASE 学科 WHEN '语文' THEN 成绩 ELSE 000 END) AS 语文,
SUM(CASE 学科 WHEN '英语' THEN 成绩 ELSE 000 END) AS 英语,
AVG(CASE 学科 WHEN '数学' THEN 成绩 ELSE 000 END+
CASE 学科 WHEN '语文' THEN 成绩 ELSE 000 END+
CASE 学科 WHEN '英语' THEN 成绩 ELSE 000 END) AS 平均成绩
INTO 成绩表横表
FROM 成绩表
GROUP BY 班组,姓名
ORDER BY 平均成绩 DESC