具有YEAR()函数的SQL Server Pivot

时间:2018-12-11 02:00:38

标签: sql sql-server

我正在SQL Server中使用PIVOT通过YEAR(QuotaDate)汇总SalesQuota。

我想知道为什么这个版本不起作用:

not working

但是这个确实做到了

works

似乎不喜欢在PIVOT中使用YEAR()函数,因此我只是在PIVOT之前的FROM语句中进行了嵌套的SELECT。

有什么想法吗?

p.s。有人知道我如何从输出中去除括号吗?

image here

我是SQL的新手,列名是数字,所以我在方括号中加上了括号,但是在最终输出中看起来很难看。

1 个答案:

答案 0 :(得分:0)

我只是使用条件聚合来做到这一点。您可以尝试使用双引号:

select concat( . . . ) as salesperson,
       sum(case when year(quotadata) = 2011 then salesquota end) as "2011",
       sum(case when year(quotadata) = 2012 then salesquota end) as "2012",
       sum(case when year(quotadata) = 2013 then salesquota end) as "2013",
       sum(case when year(quotadata) = 2014 then salesquota end) as "2014"
from . . . 
group by concat( . . . )