【问题标题】:pivot table not grouping results as expected数据透视表未按预期对结果进行分组
【发布时间】:2015-01-31 23:24:57
【问题描述】:

我使用的是sql server 2012。我有两个表,请看下面

Table 1 (Region_Strat)

STRAT  SALES_P  COMM
EU     Bob      AC
EU     Dave     AC
NA     John     JP
GB     Mike     AC


Table 2 (Sales_Records)

SALES_P   AMT   SHOP
Bob       5     ABC
Bob       10    DEF
Bob       3     GHI
Dave      12    ABC
John      3     DEF
Mike      11    LIK

我有一个名为 vw_sales 的视图(存储为无法更改的视图),它基本上将 Region_Strat 表中的 STRAT 列添加到 Sales_Records 表中,以提供下表。

SALES_P   AMT   SHOP    STRAT
Bob       5     ABC     EU       
Bob       10    DEF     EU       
Bob       3     GHI     EU       
Dave      12    ABC     EU       
John      3     DEF     NA       
Mike      11    LIK     GB

这一切都很好。接下来我尝试创建数据透视表(它确实运行但没有给我我需要的结果)。我的查询是

 SELECT SHOP, [EU],[NA],[GB] 
 INTO MY_DB.dbo.TEMP
 FROM
 ( SELECT SALES.SHOP, cast(SALES.Amt as bigint) AS SumOfAmt, Region.COMM, Region.STRAT
  FROM MY_DB.dbo.vw_sales AS SALES JOIN MY_DB.dbo.Region_Strat AS Region ON
  SALES.SALES_P = Region.SALES_P
  WHERE Region.COMM in ('AC','JP') ) tbl
 pivot
 ( sum(SumOfAmt) for STRAT IN([EU],[NA],[GB])) pvt order by SHOP

我希望看到的结果,

SHOP   EU    NA    GB
ABC    17    null  null     
DEF    10    3     null
GHI    3     null  null
LIK    null  null  11

但是我看到的结果是商店 DEF 显示了两次,如下所示。

SHOP   EU    NA    GB
DEF    10    null  null     
DEF    null  3     null

如何更改我的查询以使 DEF 显示在一行上?

【问题讨论】:

  • 这能正常工作吗?我没有别名STRAT_FUND 任何在where Clause 中使用的螺母STRAT_FUND.COMM
  • 道歉 - 复制和粘贴错误。应该是地区,已经在我的帖子中更新了。

标签: sql sql-server select sql-server-2012 pivot


【解决方案1】:

试试这个:

SELECT SHOP, [EU],[NA],[GB] INTO MY_DB.dbo.TEMP
 FROM
 ( SELECT SALES.SHOP, cast(SALES.Amt as bigint) AS SumOfAmt, Region.STRAT
    FROM MY_DB.dbo.vw_sales AS SALES 
    JOIN MY_DB.dbo.Region_Strat AS Region ON SALES.SALES_P = Region.SALES_P
    WHERE Region.COMM in ('AC','JP') 
) tbl
 pivot ( sum(SumOfAmt) for STRAT IN([EU],[NA],[GB])) pvt 
 order by SHOP

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2021-04-29
    • 2019-01-08
    • 1970-01-01
    相关资源
    最近更新 更多