【问题标题】:How to give name to Pivot table in sql server?如何在sql server中为数据透视表命名?
【发布时间】:2016-04-04 21:06:51
【问题描述】:

我有以下数据透视表,我想稍后在存储过程中使用它。 那么如何给它命名或创建/选择数据透视表到另一个表,以便稍后在我的存储过程中使用它。

select [2] as Feb, [3] as March, [4] as April from
(
  select entry1, month1
  from tblMonth
) d
pivot
(
  max(entry1)
  for month1 in ([2],[3], [4])
)  as ccc

我想做“Select * from ccc”,我现在做不到。

【问题讨论】:

  • 如果您只需要在下一条语句中再次引用它,则可以使用 cte。您可以通过创建显式表或使用 select into 来插入临时表。
  • 是的,我想在下一个声明中再次提及它。你能给我参考一下 cte 的例子或语法吗?
  • 您是否尝试过在搜索引擎中查找?从字面上看,有成千上万的 ctes 示例。我怀疑您确实想要一个临时表,因为您不止一次谈论引用透视数据。只需在 FROM 之前添加“into #MyTempTableName”,您的查询结果就会出现在临时表中。

标签: sql-server sql-server-2008 stored-procedures pivot-table


【解决方案1】:

我没有对此进行测试,但诀窍是使用别名在数据透视表周围放置一个包装器,然后从别名中进行选择。像这样的:

SELECT CCC.* FROM
(select [2] as Feb, [3] as March, [4] as April from 
(select entry1, month1 from tblMonth ) d 
pivot ( max(entry1) for month1 in ([2],[3], [4]) ) as c) AS CCC

有很多出色的数据透视表示例(仅谷歌“数据透视表 sql server 2008 示例”)。

【讨论】:

    【解决方案2】:

    谢谢各位,我得到了我正在寻找的以下答案。

    选择 * 进入 tblMonth_temp2 从 (选择 ccc.* 来自 ( 选择条目 1,月份 1 从 tblMonth_temp ) d 枢 ( 最大值(条目 1) 在 ([2],[3], [4]) 中的第 1 个月 ) 作为 ccc ) 作为 x

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-25
      相关资源
      最近更新 更多