我有两张桌子
表1。
Name Grade Math
---------------------------
Chris A 30
Julie AA 35
Ross AA 32
表2
Name English
-------------------------
Julie 29
Chris 22
Ross 20
我想得到AA等级学生的英语成绩总和。我怎样才能做到这一点?请帮忙。
编辑:我想得到数学AA成绩的英语成绩总和,即朱莉和罗斯:英语成绩总和为29 + 20。答案 0 :(得分:1)
尝试
SELECT SUM(t2.English)
FROM Table1 t1
JOIN Table2 t2
ON t1.Name = t2.Name
WHERE t1.Grade = 'AA'
答案 1 :(得分:1)
试试这个,
SELECT Sum(B.English) Total
FROM #Table_1 A
JOIN #Table_2 B ON A.Name = B.Name
WHERE Grade = 'AA'
如果您想单独使用此标记
SELECT A.Name,
Sum(B.English) Total
FROM #Table_1 A
JOIN #Table_2 B ON A.Name = B.Name
WHERE Grade = 'AA'
GROUP BY A.Name
答案 2 :(得分:0)
从一个表中获取数据的直接方式是使用EXISTS或IN。
select sum(english)
from table2 t2
where exists
(
select *
from table1 t1
where t1.name = t2.name
and t1.grade = 'AA'
);
使用IN:
select sum(english)
from table2
where name in
(
select name
from table1
where grade = 'AA'
);
我喜欢IN在这里好多了,但这是一个品味问题。
两个查询都假设两个表的主键都是名称。我请你告诉我们,但你没有。所以:再使用另一个主键,您可能需要其他查询。