重新格式化一个 table 以便将其合并到另一个 table

Reformatting one table in order to combine it to another table

我目前正在做一个个人项目,我在将两个 table 组合在一起时遇到了一些问题。这是一个关于NBA篮球比赛数据的项目。 Whosebug 不允许我将 table 添加到此 post,因此我将附上 table 的屏幕截图:

我的目标是用上位table创造total_STLtotal_BLKtotal_TO各GAME_ID的主客场, 并将其添加到上面屏幕截图的底部 table。

截图中最下面的table叫做games,主键是GAME_ID,每行包含主客场的详细数据。顶层 table 我自己查询 From this table 调用 dbo.games_details 使用代码:

SELECT GAME_ID, TEAM_abbreviation, TEAM_ID,
        SUM(CAST(STL as decimal)) AS total_STL, 
        SUM(CAST(BLK as decimal)) AS total_BLK,
        SUM(CAST(games_details.TurnOvers as decimal)) AS total_TO
FROM games_details
WHERE games_details.STL != ' ' and games_details.STL is not NULL
GROUP BY GAME_ID, TEAM_ID, TEAM_ID, TEAM_ABBREVIATION
ORDER BY game_ID desc

SELECT * FROM games

我解决这个问题的方法是先查询和分组 game_details 这样更有条理,获得两支球队每个 GAME_ID 的抢断、盖帽和失误。然后我想使用 games table 以某种方式将团队分为 HOME 和 AWAY 团队,然后创建 total_STL_HOMEtotal_STL_AWAY 就像 game_details 中的其他统计数据一样。但是,我是 SQL 的新手,我不完全确定如何执行此操作,因为我相信这涉及某种旋转,因为我相信这些行是我需要转换为其他 table.

总结一切:

games: table 包含 GAME_ID 作为主键。每行包含一支球队的客场和主场比赛统计数据

games_details:外键为GAME_ID。包含两队每场比赛的个人球员数据

我的目标是用games_detailstable相加得到主客场的STL,失误,BLKS,并相加到gamestable.

My goal is to use the top table to create total_STL, total_BLK, total_TO for the home game and away game of each GAME_ID, and add it to the bottom table of the screenshot above.

我不确定屏幕截图与您的示例代码有什么关系。但是这个想法看起来像两个连接:

select b.*, th.total_stl, th.total_blk, th.total_to,
       ta.total_stl, ta.total_blk, ta.total_to
from bottomtable b join
     toptable th
     on b.home_team_id = t.team_id join
     toptable tb
     on b.away_team_id = t.team_id