-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 订购,但不能这样做,因为我无法在数据透视之前下订单。请问我该怎么做

请帮忙

4

1 回答 1

1

注意子查询

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

退货

在此处输入图像描述

于 2019-10-03T14:56:49.863 回答