简化数据透视表查询

时间:2016-01-27 15:24:26

标签: sql sql-server pivot-table

我有一个数据透视表,但我的问题是,每年一次,它需要手动修改,它不应该那样。

我目前拥有的是:

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和生成的查询的情况下做我想做的事情?

0 个答案:

没有答案
相关问题