1

我有一张表格:

日期/类别(字符串)/计数(整数)
------------------------------------------
7/15 一个 3
7/15 乙 7
7/15 C 2
7/16 一个 9
7/16 乙 1
7/16 C 2

基本上,对于每一天,每个类别都会有一个与之相关的计数。

问题是,我不一定知道这些类别最终会是什么。假设我知道他们是 A、B 和 C,但下周会有 D、E 和 F。

这是我想要构建的视图:

日期 / A / B / C / ..(无论找到多少类别)
-------------------------------------------------- --------
7/15 3 5 2 3 4
7/16 9 5 9 6 4
...
..
.

我通常知道足够多的 SQL 来应付,但这一个让我绞尽脑汁。我不认为我在尝试谷歌搜索时使用了正确的词汇,因为我没有找到我正在寻找的答案。

4

1 回答 1

0

答案很简单,您无法构建视图来做您想做的事。视图具有预定义的列。

您可以执行以下操作之一:

  1. 创建一个每周创建一个视图的存储过程。此存储过程将分析数据、确定列,然后使用动态 SQL 更改视图。
  2. 更改您想要的定义并将值放在单个列中,用逗号(或其他字符)分隔。
  3. 预定义可接受列的列表,创建视图(例如使用数据透视表),然后在出现新值时定期对其进行修改。
  4. 在应用层进行旋转。这在 Excel 中特别容易。

(1) 和 (3) 的一大警告。如果有任何东西使用视图作为“从视图中选择 *”,您需要确保那些查询/存储过程/用户定义的函数/等。被重新编译。否则,它们将具有错误的列列表(这可能仅适用于 SQL Server)。

于 2012-08-12T14:43:34.553 回答