我有一个数据透视表,但我的问题是,每年一次,它需要手动修改,它不应该那样。
我目前拥有的是:
SELECT * FROM (SELECT Injuries.PlayerID, InjuryID, YEAR(DateInjured) AS YearInjured, (YEAR(CURRENT_TIMESTAMP) - YEAR(DateOfBirth)) AS Age FROM Injuries INNER JOIN Players ON (Players.PlayerID = Injuries.PlayerID)) AS T
PIVOT (
COUNT(InjuryID)
FOR YearInjured IN ([2008],[2009],[2010],[2011],[2012],[2013],[2014],[2015])
) AS PT
我试过了
SELECT * FROM (SELECT Injuries.PlayerID, InjuryID, YEAR(DateInjured) AS YearInjured, (YEAR(CURRENT_TIMESTAMP) - YEAR(DateOfBirth)) AS Age FROM Injuries INNER JOIN Players ON (Players.PlayerID = Injuries.PlayerID)) AS T
PIVOT (
COUNT(InjuryID)
FOR YearInjured IN (SELECT DISTICT YEAR(DateInjured) FROM Injuries)
) AS PT
但SQL服务器并不喜欢我这样做。我还尝试DECLARE
一个表并选择年份并在PIVOT中使用它,但这似乎也不起作用。
有没有办法在没有被迫使用sp_exec
和生成的查询的情况下做我想做的事情?