Sql server 透视表日期和年份数据显示sql server 2005
这是我的问题Sql server 透视表日期和年份数据显示sql server 2005,sql-server,pivot,Sql Server,Pivot,这是我的问题 SELECT * FROM (SELECT CurDate, YEAR(CurDate) AS orderyear, Warranty_Info FROM eod_main where year(CurDate)>=2009 and year(CurDate)<=2011) AS D PIVOT(SUM(Warranty_Info) FOR orderyear IN([2009],[2010],[2011])) AS P 我的查询中存在某种问题,这就是
SELECT *
FROM (SELECT CurDate, YEAR(CurDate) AS orderyear, Warranty_Info
FROM eod_main where year(CurDate)>=2009 and year(CurDate)<=2011) AS D
PIVOT(SUM(Warranty_Info) FOR orderyear IN([2009],[2010],[2011])) AS P
我的查询中存在某种问题,这就是为什么它返回同一个月的多个数据,如
请帮我找到正确的问题。谢谢我建议使用函数返回每个月的数值,而不是使用CurDate作为年、月和日的完整日期。这将允许您按月分组,而不是按完整日期分组:
SELECT dateMonth, [2009],[2010],[2011]
FROM
(
SELECT month(CurDate) dateMonth,
YEAR(CurDate) AS orderyear, Warranty_Info
FROM eod_main
where year(CurDate)>=2009
and year(CurDate)<=2011
) AS D
PIVOT
(
SUM(Warranty_Info)
FOR orderyear IN([2009],[2010],[2011])
) AS P;
看
SELECT dateMonth, [2009],[2010],[2011]
FROM
(
SELECT month(CurDate) dateMonth,
YEAR(CurDate) AS orderyear, Warranty_Info
FROM eod_main
where year(CurDate)>=2009
and year(CurDate)<=2011
) AS D
PIVOT
(
SUM(Warranty_Info)
FOR orderyear IN([2009],[2010],[2011])
) AS P;