这是我的查询。我想在此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
答案 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