抱歉标题不好,很难用一句话来解释我遇到了什么问题。所以我有一个篮球统计数据库。我要做的是将一支球队的统计数据组合成一排,然后将这支球队与之对抗的所有统计数据组合成另一排。如果数据库中有对手的统计数据,我现在所拥有的工作,但可能没有对手的统计数据而只有球队的统计数据。很难解释为什么,所以请继续。
所以假设我有 3 行是这样的:
COMP_ID | TEAM_ID | OFF_REB | DEF_REB
1 | 100 | 5 | 4
2 | 100 | 1 | 1
3 | 100 | 3 | 7
基本上,有3场比赛,我只有100队的数据。我想连续获得第 100 队的所有 OFF 和 DEF 篮板,然后在另一排中获得所有对手的 OFF 和 DEF 篮板。如果没有对手的统计数据,只有 0 就可以了。
仅供参考 - 我现在做的是分组,将团队 100 的统计数据打包在一起,并将对手的统计数据打包在一起。对于对手统计数据的 TEAM_ID,我将它们分组为 -999 值,因此我知道它们是对手值。
这是我现在的查询:
SELECT CASE WHEN TEAM_ID <> 100 THEN -999 ELSE 100 END AS TEAM_ID, SUM(OFF_REB+DEF_REB) REBS
FROM V_STATS_COMP
WHERE COMP_ID IN (SELECT COMP_ID FROM COMPETITIONS WHERE HOME_ID = 100 OR VIS_ID = 100)
GROUP BY CASE WHEN TEAM_ID <> 100 THEN -999 ELSE 100 END
ORDER BY TEAM_ID
使用这个查询,我只得到 1 行,那是团队 100。即使没有可用的统计数据,我如何调整它以获得 -999 行?
编辑以显示所需的结果:
TEAM_ID | REBS
100 | 21
-999 | 0
当然,如果有对手的统计数据,我想看看他们的 REBS 值。