34,575
社区成员
发帖
与我相关
我的任务
分享
select 答题者,sum(题目成绩)
from 题目表,成绩表
where 成績表.题目号=題目表.题目号
group by 答题者
select 答题者,sum(题目成绩)
from 题目表,成绩表
where 成績表.题目号=題目表.题目号
group by a.答题者
--题目表
--题目号 题目内容 答题者
--1 xx A
--2 xx A
--3 xx A
--4 xx B
--成绩表 题目号与题目表题目号对应
--成绩号 题目号 题目成绩
--1 1 5
--2 2 5
--3 3 5
--4 4 1
--CREATE TABLE question
--(
-- id INT NOT NULL,
-- CONTENT nvarchar(50) NULL,
-- userid nvarchar(2)
--)
--CREATE TABLE score
--(
-- id INT NOT NULL,
-- questionId INT ,
-- score INT
--)
--INSERT INTO question VALUES(1,'XX','A')
--INSERT INTO question VALUES(2,'XX','A')
--INSERT INTO question VALUES(3,'XX','A')
--INSERT INTO question VALUES(4,'XX','B')
--INSERT INTO score VALUES(1,1,5)
--INSERT INTO score VALUES(2,2,5)
--INSERT INTO score VALUES(3,3,5)
--INSERT INTO score VALUES(4,4,1)
SELECT q.userid AS 姓名,SUM(tb.总分) AS 总分 FROM question q
LEFT JOIN(SELECT questionId , SUM(score) AS 总分 FROM score GROUP BY questionId) tb
ON q.id = tb.questionId
GROUP BY q.userid
-- 姓名 总分
------ -----------
--A 15
--B 1
--(2 行受影响)
SELECT [姓名]=A.答题者,[总分]=SUM(B.题目成绩)
FROM 题目表 A
INNER JOIN 成绩表 B ON A.题目号 = B.题目号
GROUP BY A.答题者
ORDER BY A.答题者 ASC
--> 测试数据: @题目表
declare @题目表 table (题目号 int,题目内容 varchar(2),答题者 varchar(1))
insert into @题目表
select 1,'xx','A' union all
select 2,'xx','A' union all
select 3,'xx','A' union all
select 4,'xx','B'
--> 测试数据: @成绩表
declare @成绩表 table (成绩号 int,题目号 int,题目成绩 int)
insert into @成绩表
select 1,1,5 union all
select 2,2,5 union all
select 3,3,5 union all
select 4,4,1
select a.答题者,
sum(b.题目成绩)题目成绩
from @题目表 a,@成绩表 b
where a.题目号=b.题目号
group by a.答题者
/*
答题者 题目成绩
---- -----------
A 15
B 1
*/