首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >和Colum情况()在枢轴后

和Colum情况()在枢轴后
EN

Stack Overflow用户
提问于 2015-05-06 20:52:36
回答 2查看 75关注 0票数 3

对不起,如果我解释得不太好,标题也不太清楚。我正在使用Server 2005。我有一个与数据透视的查询,运行良好,但我知道我必须添加一个新的查询,从季度获得结果。

这是我要获得月份结果的查询。

代码语言:javascript
运行
复制
    WITH PivotData AS
(
SELECT  idWatimetro, mes,ano, valor
FROM   E_Registros_Watimetros where ano = 2012
)
SELECT *
FROM PivotData 
PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5] AS P order by mes;

所以,我只想得到四个寄存器

代码语言:javascript
运行
复制
1 With Month 1+2+3
2 Wint Month 4+5+6
3 With Month 7+8+9
4 Wint Month 10+11+12

我一直在努力与联盟,但没有工作,我期望,任何帮助都将感激,并为我的糟糕的英语和解释抱歉。

这是我没有结果的查询

代码语言:javascript
运行
复制
SELECT  * 
FROM    (
            SELECT  idWatimetro, ano,mes, valor
            FROM E_Registros_Watimetros   
            WHERE (ano = 2012 and mes = 1 ) or (ano = 2012 and mes = 2)or (ano = 2012 and mes = 3)
            UNION ALL
            SELECT  idWatimetro, ano,mes, valor
            FROM E_Registros_Watimetros    
            WHERE (ano = 2012 and mes = 4 ) or (ano = 2012 and mes = 5)or (ano = 2012 and mes = 6)
        ) AS SourceTable
PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5]))AS P

谢谢你提前了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-06 21:04:27

试一试.

代码语言:javascript
运行
复制
   ; WITH PivotData AS
(
SELECT  idWatimetro
      ,CASE WHEN mes IN (1,2,3)    THEN 1
            WHEN mes IN (4,5,6)    THEN 2
            WHEN mes IN (7,8,9)    THEN 3
            WHEN mes IN (10,11,12) THEN 4
       END AS mes
      ,ano
      ,valor
FROM   E_Registros_Watimetros where ano = 2012
)
SELECT *
FROM PivotData 
PIVOT(SUM(valor) 
      FOR Mes 
      IN ([1],[2],[3],[4]))p
票数 2
EN

Stack Overflow用户

发布于 2015-05-06 21:19:37

您可以在GROUP BY的结果集上对PIVOT进行季度编号,即mes - (mes - 1) % 3

代码语言:javascript
运行
复制
WITH PivotData AS
(
   SELECT  idWatimetro, mes,ano, valor
   FROM   E_Registros_Watimetros where ano = 2012
),
PivotResult AS 
(
   SELECT *
   FROM PivotData 
   PIVOT(SUM(valor) FOR idWatimetro IN ([1],[2],[3],[4],[5])) AS P 
),
SELECT CASE mes - (mes - 1) % 3 
         WHEN 1 THEN '1st' 
         WHEN 4 THEN '2nd' 
         WHEN 7 THEN '3rd' 
         ELSE '4th' 
       END AS quarter,
       2012 AS ano, sum([1]) AS [1], sum([2]) AS [2], 
       sum([3]) AS [3], sum([4]) AS [4], sum([5]) AS [5]
FROM PivotResult
GROUP BY mes - (mes - 1) % 3  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30087312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档