如何使用具有不同记录的连接获取列的SUM

时间:2015-08-20 07:16:39

标签: mysql

检查图像并尽快回复我 Re:如何获取sql server的不同记录 发表于2015年8月19日
表一

QuestionID(primaryKey)   TargetValue
1                         100
2                         500
3                         200

第二张表

RecordID(primaryKey)     Achieved Value  QuestionID(foreignkey)
1                               14           1
2                               14           1
3                               16           2

按照玛纳斯的说法 如果你想获得100:

,请查找以下查询
SELECT SUM(Achieved) AS ACHIEVED, [Target]
FROM tabl1
INNER JOIN tabl2 on tabl2.QuestionID=tabl1.QuestionID
group by tabl1.QuestionID, tabl1.Target

1 - 我想要计算目标的总和和实现的SUm不仅仅是目标和实现的总和 我想在计算目标的SUM时 无论第二个表中针对问题01的行数是多少,SELECT SUM(QuestionTarget)都将为100 ....

如果内连接创建问题,我已尝试左外连接,它也没有给出所需的结果

1 个答案:

答案 0 :(得分:0)

您可以尝试以下查询,即使您的问题不太清楚,如果您没有得到理想的结果,那么显示您需要的输出。即使您可以创建一个sqlfiddle来获得快速解决方案 -

select questionid,sum(targetvalue) as target, sum(achivedvalue) as achieved 
from 
(
SELECT distinct tabl1.questionid,tabl1.targetvalue,tabl2.achivedvalue 
FROM table1 as tabl1
LEFT JOIN table2 as tabl2 ON tabl2.questionid=tabl1.questionid
) a 
group by questionid;

您可以在sqlfiddle中查看输出:http://sqlfiddle.com/#!9/cf590/1