sql查询两个数据透视列合并

xjreopfe  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(377)
  1. select pvtMonth.CardName, [1] as [Jan Sales], [2] as [Feb Sales], [3] as [Mar Sales], [4] as [Apr Sales], [5] as [May Sales],
  2. [6] as [Jun Sales], [7] as [Jul Sales], [8] as [Aug Sales], [9] as [Sep Sales], [10] as [Oct Sales], [11] as [Nov Sales], [12] as [Dec Sales] from
  3. (
  4. select X.CardName, SUM(X.[Total Sales S$]) as [Sales $] , X.Month from Data X group by X.CardName ,X.Month
  5. ) X PIVOT
  6. (
  7. sum(X.[Sales $])
  8. FOR [Month]
  9. IN ( [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] )
  10. ) AS pvtMonth order by pvtMonth.CardName asc


现在我需要再添加一个名为“jan gp”的列名为“x.gp”。如何更新我的查询。我需要下面的结果集

mlmc2os5

mlmc2os51#

我建议使用条件聚合而不是 pivot 语法。它更灵活(至少同样有效)。你似乎想要这样的东西:

  1. select
  2. cardName,
  3. sum(case when month = 1 then [Total Sales S$] end) [Jan Sales $],
  4. sum(case when month = 1 then [Total Sales SGP] end) [Jan Sales GP],
  5. sum(case when month = 2 then [Total Sales S$] end) [Feb Sales $],
  6. sum(case when month = 2 then [Total Sales SGP] end) [Feb Sales GP],
  7. ...
  8. from data
  9. group by cardName

相关问题