0

我有一张看起来像这样的桌子

[Serial Number]   [EventNumber]    [DateTimeStamp]     [DataElement]  [DataValue]
XXXX1                 1          7/7/2013 10:00 AM        Height         62
XXXX1                 1          7/7/2013 10:00 AM        Mass           12
XXXX1                 1          8/3/2013 3:00 PM         Length         13
XXXX1                 1          8/3/2013 3:00 PM         Width          60
XXXX1                 2          10/10/2013 10:00 AM      Height         22
XXXX1                 2          10/10/2013 10:00 AM      Mass           21
XXXX1                 2          10/12/2013 10:00 AM      Length         7
XXXX1                 2          10/12/2013 11:00 AM      Width          67

工厂的工人通过 Web 界面输入数据,并最终出现在此表中。该表包含数百个序列号,每个序列号最多可以包含 19 个或更多事件。每个事件都是一些被测量的参数。在进行测量后,会进行一些修改,并再次对连续事件进行测量。

我想通过 SQL 查询为一个特定的序列号创建一个看起来像这样的表

[Serial Number]  [EventNumber] [Height]    [Mass]    [Width]   [Lenght]
XXXX1                  1           62          12       13        20
XXXX1                  2           10          etc     etc
XXXX1                  3           etc
XXXX1                  4           etc

我知道我需要使用数据透视表,但我不一定想出正确的 SQL 代码。

注意:本例中使用的数据是组成的,但结构都是一样的。

提前致谢

4

1 回答 1

0

尝试这个:

TRANSFORM Sum(t.DataValue) AS SumOfDataValue
SELECT t.[Serial Number], t.EventNumber
FROM Table1 AS t
GROUP BY t.[Serial Number], t.EventNumber
PIVOT t.DataElement;

让我知道是否有任何问题。

于 2013-08-05T21:42:42.777 回答