Plsql 从多个表中求和

Plsql 从多个表中求和,plsql,sum,multiple-tables,Plsql,Sum,Multiple Tables,我正在做一个兼职项目,以进一步提高我在PL/SQL方面的背景。我目前正在做的项目涉及一款在线视频游戏《疯狂19》的统计数据。我正在尝试将所有统计数据汇总到一个视图/表中。例如,我想得到本赛季所有跑位后卫的统计数据之和。我所有的数据都被分为17张表——本赛季每周一张表,但球员只有在那一周有数据时才会出现在表中。因此,如果他们在第1周坐板凳或受伤,并且无法在第2周比赛,他们将不在第2周冲刺统计数据中。示例数据: 统计数据第1周: Name | rushyds ----------------

我正在做一个兼职项目,以进一步提高我在PL/SQL方面的背景。我目前正在做的项目涉及一款在线视频游戏《疯狂19》的统计数据。我正在尝试将所有统计数据汇总到一个视图/表中。例如,我想得到本赛季所有跑位后卫的统计数据之和。我所有的数据都被分为17张表——本赛季每周一张表,但球员只有在那一周有数据时才会出现在表中。因此,如果他们在第1周坐板凳或受伤,并且无法在第2周比赛,他们将不在第2周冲刺统计数据中。示例数据:

统计数据第1周:

 Name    | rushyds
-------------------
 Coleman | 25
 Henry   | 15
统计数据第2周:

 Name    | rushyds
-------------------
 Coleman | 25
我可以编写一个select查询,它可以获取并汇总第1周和第2周的冲刺统计数据。我的问题是,比如说,一名跑位后卫在第一周结束时受伤,并在第1周积累统计数据,但在第2周无法比赛,查询将忽略第1周的统计数据,因为他在第2周没有出现。我相信这就是join的问题所在,因为我还在学习PL/SQL的这一部分,这就是我来到这里的原因。这是我的问题-

select t.fullname,
sum(t.rushyds + t1.rushyds) as rushyds
from rstats_1 t,
rstats_2 t1
where t.rosterid = t1.rosterid
group by t.fullname
查询结果:

 Name    | rushyds
-------------------
 Coleman | 50
通缉结果:

 Name    | rushyds
-------------------
 Coleman | 50
 Henry   | 15
抱歉,如果以前有人问过这个问题,但不管我用什么方式在谷歌上输入我的字符串,它都不会给出这个问题的正确答案,因为我可能不知道如何具体地问这个问题。提前谢谢你的帮助

编辑:我想我发现了一些基于案例的东西。我会尝试,然后更新这个,如果它的工作

更新:案例不起作用,但我想我通过使用完全外部连接解决了问题。我将不得不使用包含名册上所有姓名的主表,以便小组成员使用这些姓名,而不是仅在第1周存在的姓名。完成后,我将使用最终查询更新我的工作表,以便其他人可以看到解决方案

更新2:我知道该怎么做了,它包括一个完整的外部连接和nvl。这是正确的查询,如下所示:

select r.fullname,
sum(nvl(t.rushyds,0) + nvl(t1.rushyds,0) as rushyds
from rosters r
full outer join rstats_1 t on r.rosterid = t.rosterid
full outer join rstats_2 t1 on r.rosterid = t1.rosterid
group by r.fullname

完全外部联接将通过联接表的唯一标识符rosterId来获取一个名称,而不管它是否显示在表中。nvl语句处理由此产生的Null值,因为Null值将覆盖填充的数字,使总和的值等于Null。通过使用NVL(column,number),它表示,如果该列出现空值,PL/SQL将使用“number”填充该值

谢谢Matthew Callahan。出于好奇,您是否考虑过/尝试过将表合并在一起?