Sql server 2008 集合的求和查询

Sql server 2008 集合的求和查询,sql-server-2008,tsql,Sql Server 2008,Tsql,我有两张桌子: Fixture (id, homeId, awayId...) FixtureStats(id,playerId, teamOwnerId, rating, goals) 我想展示每个球员的总进球数和球员所属的球队进球数 PlayerId TeamOwnerId Goals TeamGoals 1 2 0 9 2 2 1 9 3

我有两张桌子:

Fixture (id, homeId, awayId...)
FixtureStats(id,playerId, teamOwnerId, rating, goals)
我想展示每个球员的总进球数和球员所属的球队进球数

 PlayerId TeamOwnerId Goals  TeamGoals
    1              2      0        9
    2              2      1        9
    3              2      3        9
    4              2      5        9
    5              3      0        12       

....
下面的sql查询仍然缺少teamgoals

SELECT TOP (100)
       PERCENT fs.teamownerid,
       fs.playerid,
       Count(f.id)  AS Apps,
       Sum(fs.goal) AS Goals
FROM   dbo.fixturestats AS fs
       INNER JOIN dbo.fixture AS f ON fs.fixtureid = f.id
WHERE  ( fs.rating > 0 )
GROUP  BY fs.playerid, fs.teamownerid  
试试这个:

SELECT 
    X.playerid,
    X.teamownerid,
    X.goals,
    (   SELECT Sum(goal)
        FROM   fixturestats
        WHERE  X.teamownerid = teamownerid
    ) AS TeamGoals
FROM  (
        SELECT 
            TOP (100) PERCENT fs.teamownerid AS TeamOwnerId,
            fs.playerid    AS PlayerId,
            Count(f.id)    AS Apps,
            Sum(fs.goal)   AS Goals
        FROM   dbo.fixturestats AS fs
        INNER JOIN dbo.fixture AS f ON fs.fixtureid = f.id
        WHERE  ( fs.rating > 0 )
        GROUP  BY fs.playerid,fs.teamownerid
     ) AS X  

您可以使用
Sum Over
进行此操作:

select 
    *,
    Sum(Goals) over (partition by TeamOwnerId)
from 
    FixtureStats
where 
    (Rating > 0)

2之间的关系是什么?fs.fixtureid列链接到哪里?顶部(100%)百分比的
有什么用?@Ajay2707:您使用了什么工具来修复
空格