繁体   English   中英

使用Union在SQL查询中进行数据透视

[英]Pivot in sql query using union

此查询有什么问题:

 select * from ( select [date],CountType,[Count]  from(

select COUNT(Id) as [Count],'TotalCustomer' as CountType, cast(DATEADD(day,3,[JobCardDate])as date) as [date] FROM [Honda_db].[dbo].[Post Service Feedback] 
where cast(DATEADD(day,3,[JobCardDate]) as date) between '2015-11-26' and  '2015-12-26' group by cast(DATEADD(day,3,[JobCardDate]) as date)
 union  
select COUNT(Id) as [Count],'NotCalled' as CountType, cast(DATEADD(day,3,[JobCardDate]) as date) as [Date] from [Honda_db].[dbo].[Post Service Feedback] 
  where  cast(DATEADD(day,3,[JobCardDate]) as date) between '2015-11-26' and  '2015-12-26' and 
  ([IsCalled] is null or [IsCalled] ='No')  group by cast(DATEADD(day,3,[JobCardDate]) as date)
  ) as s
  PIVOT
(
    SUM([Count])
    FOR CountType IN (TotalCustomer,NotCalled)
) AS pvt

根据数据透视的语法,我认为我走在正确的轨道上。 由此引述。

这是错误:

'pvt'附近的语法不正确。

您有2个错误:

  1. FOR CountType IN (TotalCustomer,NotCalled)应定界
  2. 额外select * from (开头

这是更正后的查询:

SELECT  *
FROM    ( SELECT    COUNT(Id) AS [Count] ,
                    'TotalCustomer' AS CountType ,
                    CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE) AS [date]
          FROM      [Honda_db].[dbo].[Post Service Feedback]
          WHERE     CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE) BETWEEN '2015-11-26' AND '2015-12-26'
          GROUP BY  CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE)
          UNION
          SELECT    COUNT(Id) AS [Count] ,
                    'NotCalled' AS CountType ,
                    CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE) AS [Date]
          FROM      [Honda_db].[dbo].[Post Service Feedback]
          WHERE     CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE) BETWEEN '2015-11-26' AND '2015-12-26'
                    AND ( [IsCalled] IS NULL
                          OR [IsCalled] = 'No'
                        )
          GROUP BY  CAST(DATEADD(DAY, 3, [JobCardDate]) AS DATE)
        ) AS s PIVOT
( SUM([Count]) FOR CountType IN ( [TotalCustomer], [NotCalled] ) ) AS pvt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM