我无法添加"计数(结果)为GamesPlayed"到这个MS SQL查询的任何地方

时间:2015-12-08 19:47:47

标签: sql sql-server

这是我的查询。我想在此MS SQL查询中添加计数(结果)作为GamesPlayed。但是当我尝试这样做时它显示错误。请帮帮我。

SELECT DENSE_RANK() OVER (
        ORDER BY Point DESC
            ,GD DESC
        ) AS Rank
    ,*
FROM (
    SELECT TName
        ,Sum(Score) AS Score
        ,Sum(GA) AS GA
        ,Sum(Diff) AS GD
        ,Sum(Point) AS Point
    FROM (
        SELECT f.teamID
            ,Score AS Score
            ,GA AS GA
            ,Score - GA AS DIff
            ,CASE 
                WHEN Result = 'W'
                    THEN 3
                WHEN Result = 'D'
                    THEN 1
                ELSE 0
                END AS Point
            ,T.TName
        FROM Fixtures F
        INNER JOIN Teams T ON t.TeamID = f.TeamID
        ) S
    GROUP BY teamID
        ,TName
    ) SS
ORDER BY Point DESC
    ,GD DESC

1 个答案:

答案 0 :(得分:1)

试试这个

SELECT DENSE_RANK() OVER (
        ORDER BY Point DESC
            ,GD DESC
        ) AS Rank
    ,*
FROM (
    SELECT TName
        ,Sum(Score) AS Score
        ,Sum(GA) AS GA
        ,Sum(Diff) AS GD
        ,Sum(Point) AS Point
        ,COUNT(result) AS GamesPlayed  -- Get games played
    FROM (
        SELECT f.teamID
            ,Score AS Score
            ,GA AS GA
            ,Score - GA AS DIff
            ,CASE 
                WHEN Result = 'W'
                    THEN 3
                WHEN Result = 'D'
                    THEN 1
                ELSE 0
                END AS Point
            , result  --Had to add result to this derived table to be used outside
            ,T.TName
        FROM Fixtures F
        INNER JOIN Teams T ON t.TeamID = f.TeamID
        ) S
    GROUP BY teamID
        ,TName
    ) SS
ORDER BY Point DESC
    ,GD DESC