.. PIVOT SQL Server 2012的订单

问题描述 投票:0回答:1

我有这样的支点

  Select 
    CalendarYear,CalendarMonth,
    count([ID])  as NumberOfOrders 
  FROM[Database].[dbo].[DataTable]
  PIVOT
  (
   SUM(NumberOfOrders) FOR CalendarMonth IN
                       ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
  )ASpv1

我希望在CalendarYear,CalendarMonth进行订购,但是不能这样做,因为我不能在数据透视表之前下订单。请问我该怎么做

请帮助

sql sql-server
1个回答
0
投票

注意子查询

Declare @YourTable Table ([ID] int,[CalendarYear] int,[CalendarMonth] int) Insert Into @YourTable Values (1,2019,1) ,(2,2019,1) ,(3,2019,2) Select * From ( Select CalendarYear ,CalendarMonth ,NumberOfOrders = count(ID) from @YourTable Group By CalendarYear,CalendarMonth ) src Pivot ( sum(NumberOfOrders) for CalendarMonth in ( [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12]) ) pvt Order By CalendarYear

返回

enter image description here
© www.soinside.com 2019 - 2024. All rights reserved.