【发布时间】:2014-07-07 23:40:17
【问题描述】:
好的,所以我有一个看起来像这样的表:
Date Table_1 Table_2 Table_3 ... Table_20
20140706 23 11 54 78
20140705 45 65 65 9
20140704 21 53 32 56
20140703 98 22 21 21
...
我想要做的是这样的事情:
Table 20140706 20140705 20140704 20140703
Table_1 23 45 21 98
Table_2 11 65 53 22
Table_3 54 65 32 21
...
我对数据透视表非常陌生,甚至不确定从哪里开始。由于大多数情况下在数据透视表文章中您需要一个总和或一个单一位置来进行数据透视,因此不确定整个数据透视场景是如何工作的。任何帮助表示赞赏。
【问题讨论】:
-
您确定这需要在数据库层完成吗?您没有其他更适合处理演示需求的层吗?如果您在 SQL 中确实需要它 - 列和行的集合是固定的吗? SQL 通常不喜欢生成具有不同列数的结果集 - 所以如果必须适应,它可能是特定于产品的 - 在这种情况下,您使用的是什么数据库产品? sql 标记用于标准 SQL 语言。
-
是的,它必须在 SQL 级别完成。是的,列数(表名)是固定的,最后 7 天的行数是固定的。 (表保留所有天,但我只需要最后 7 个)
-
那么输出列的names 会改变吗?这也不是 SQL 喜欢做的事情。那么,再一次,您正在使用什么产品?
-
我正在使用 SSMS 2008。是的,我知道,我正在尝试使用变量创建动态命名约定,获取日期并将它们设置为 varchar 变量(
@d1,@ 987654325@、@d3等)。但仍然不确定如何正确旋转。对不起,如果这没有意义=[
标签: sql pivot-table