/*
需要统计成以下形式
总 总分 数学 总分 语文 总分
李四 10 820 6 483.50 4 336.50
张三 10 829 7 595.50 3 233.50
总 总分 数学 总分 语文 总分
李四 10 820 6 483.50 4 336.50
张三 10 829 7 595.50 3 233.50
ID Name Class Mark Term
1 张三 数学 80.50 2001
2 张三 数学 82.50 2002
3 张三 数学 83.50 2003
4 张三 数学 84.50 2004
5 张三 数学 90.00 2005
6 张三 数学 84.50 2006
7 张三 数学 90.00 2007
8 张三 语文 80.50 2001
9 张三 语文 82.50 2002
10 张三 语文 70.50 2003
11 李四 数学 84.50 2000
12 李四 数学 80.50 2001
13 李四 数学 60.50 2002
14 李四 数学 83.50 2003
15 李四 数学 84.50 2004
16 李四 数学 90.00 2005
17 李四 语文 80.50 2001
18 李四 语文 82.50 2002
19 李四 语文 83.50 2003
20 李四 语文 90.00 2005
1 张三 数学 80.50 2001
2 张三 数学 82.50 2002
3 张三 数学 83.50 2003
4 张三 数学 84.50 2004
5 张三 数学 90.00 2005
6 张三 数学 84.50 2006
7 张三 数学 90.00 2007
8 张三 语文 80.50 2001
9 张三 语文 82.50 2002
10 张三 语文 70.50 2003
11 李四 数学 84.50 2000
12 李四 数学 80.50 2001
13 李四 数学 60.50 2002
14 李四 数学 83.50 2003
15 李四 数学 84.50 2004
16 李四 数学 90.00 2005
17 李四 语文 80.50 2001
18 李四 语文 82.50 2002
19 李四 语文 83.50 2003
20 李四 语文 90.00 2005
*/
CREATE
TABLE
temp
(
[
ID
]
[
bigint
]
IDENTITY
(
1
,
1
)
NOT
NULL
,
[
Name
]
[
nchar
]
(
10
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
Class
]
[
nchar
]
(
10
) COLLATE Chinese_PRC_CI_AS
NULL
,
[
Mark
]
[
numeric
]
(
18
,
2
)
NULL
,
[
Term
]
[
nchar
]
(
10
) COLLATE Chinese_PRC_CI_AS
NULL
,
CONSTRAINT
[
PK_temp
]
PRIMARY
KEY
CLUSTERED
(
[
ID
]
ASC
)
WITH
(IGNORE_DUP_KEY
=
OFF
)
ON
[
PRIMARY
]
)
ON
[
PRIMARY
]

本文展示了如何使用SQL将数据转换为二维交叉报表,进行分类统计,包括学生的总人数、总分数以及各科目(数学、语文)的得分情况。通过创建临时表并插入数据,然后构造SQL查询语句,实现行列转换,最终输出学生姓名、总分以及各科目的得分总和。
最低0.47元/天 解锁文章
346

被折叠的 条评论
为什么被折叠?



