我正在寻找创建特殊视图的解决方案,但不知道如何解决它。:(
我尽量把它说清楚。为了更好地再现一次插图和脚本。
数据结构:
该数据库是一个 Azure 数据库(我认为它的 SQL Server 2005)我有下表。(请不要批评结构,它是给的而不是我的)
CREATE TABLE [dbo].[DeviceData](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[DeviceID] [bigint] NOT NULL,
[TimeStamp] [datetime] NOT NULL,
[Error] [nvarchar](50) NULL,
CONSTRAINT [PrimaryKey_e149e28f-5754-4889-be01-65fafeebce16] PRIMARY KEY CLUSTERED
(
[DeviceID] ASC,
[TimeStamp] ASC
))
-
DeviceData
-------------------------
ID (identity) | Int
DeviceID (PK) | Int
TimeStamp (PK) | DateTime
Error | String
样本数据:
INSERT INTO [dbo].[DeviceData]
([DeviceID]
,[TimeStamp]
,[Error])
VALUES
(
(1, '2013.01.01 10:00:00', "Error 1"),
(2, '2013.01.01 10:00:00', "Error 1"),
(3, '2013.01.01 10:00:00', "Error 1"),
(1, '2013.01.01 10:01:00', "Error 1"),
(2, '2013.01.01 10:01:00', null),
(1, '2013.01.01 10:02:00', "Error 2"),
(3, '2013.01.01 10:30:00', null)
)
-
ID | DeviceID | TimeStamp | Error
-------------------------------------------------------------
1 | 1 | 2013.01.01 10:00:00 | Error 1
2 | 2 | 2013.01.01 10:00:00 | Error 1
3 | 3 | 2013.01.01 10:00:00 | Error 1
4 | 1 | 2013.01.01 10:01:00 | Error 1
5 | 2 | 2013.01.01 10:01:00 | null
6 | 1 | 2013.01.01 10:02:00 | Error 2
7 | 3 | 2013.01.01 10:30:00 | null
想要的结果
我现在想按设备和 [Error] 字段上的“子组”对数据进行分组。
我不知道如何用word来描述它,所以请看示例结果。
DeviceID | Begin | End | Error
---------------------------------------------------------------
1 | 2013.01.01 10:00:00 | 2013.01.01 10:02:00 | Error 1
2 | 2013.01.01 10:00:00 | 2013.01.01 10:01:00 | Error 1
1 | 2013.01.01 10:02:00 | 2013.01.01 10:02:00 | Error 2
3 | 2013.01.01 10:00:00 | 2013.01.01 10:30:00 | Error 1
如果有人能给我一个提示,我可以如何以最有效的方式解决我的观点,那将是非常好的。
来自德国 Steffen 的问候和感谢