私はこのテーブルを持っています:
CREATE TABLE [Alerts]
(
[Timestamp] datetime,
[Status] int
)
INSERT INTO [Alerts] ([Timestamp], [Status])
VALUES
('2013-1-1 00:00:00', 1),
('2013-1-1 00:00:05', 1),
('2013-1-1 00:00:10', 2),
('2013-1-1 00:00:15', 2),
('2013-1-1 00:00:20', 0),
('2013-1-1 00:00:25', 1),
('2013-1-1 00:00:30', 1),
('2013-1-1 00:00:32', 2),
('2013-1-1 00:00:35', 2),
('2013-1-1 00:00:40', 0),
('2013-1-1 00:00:45', 0),
('2013-1-1 00:00:50', 0)
以下のコードからトリガーを作成する方法:
SELECT
MIN ([main].[Start]) AS [STOP_Begin],
[main].[End] AS [STOP_End],
DATEDIFF(s, MIN([main].[Start]), [main].[End]) AS [Interval_Second]
FROM
(
SELECT
[starts].[Start],
MIN([ends].[Timestamp]) AS [End]
FROM
(
SELECT
[Timestamp] AS [Start]
FROM [Alerts]
WHERE [Status] = 0
) AS [starts] LEFT JOIN [Alerts] AS [ends]
ON [starts].[Start] < [ends].[Timestamp]
AND [ends].[Status] <> 0
GROUP BY
[starts].[Start]
) AS [main]
GROUP BY
[main].[End]
ORDER BY 1
したがって、テーブル [Alerts] に新しい入力を追加するたびに
、新しいテーブルが自動的に変更されます。
すでに新しいテーブルを作成する必要がありますか、またはどのようにしますか?
私のselectコードと同じことを行う
このLINK Triggerコードを見てください。新しいテーブル名
newtableと言うだけなので、新しい入力を追加するたびにselectコードを使用する必要はありません