从记录器表构建SQL查询

问题描述 投票:-1回答:1

我有一个记录表,其中包含以下字段:timestamp,point_id,value。外部应用程序正在使用此表,每次point_id的值发生更改时,应用程序都会使用timestamp,point_id和value写入记录。

我想创建一个查询,返回几个point_id的值(例如 - 'point_id ='AA1'或point_id ='AA2')及其在时间戳窗口中的值('其中@start和@end'之间的时间戳)。任何人都可以帮我构建一个SQL语句来运行此查询?

sql-server pivot
1个回答
0
投票

你在寻找类似下面的东西吗?

DECLARE @startDatetime DATETIME = '2018-03-01 10:00:00'
DECLARE @endDatetime DATETIME = '2018-03-20 12:00:00'

IF OBJECT_ID('tempdb..#Points') IS NOT NULL 
  DROP TABLE #Points

CREATE TABLE #Points (point_id VARCHAR(100) PRIMARY KEY)

INSERT INTO #Points (point_id)
VALUES
  ('AA2'), -- your point IDs
  ('A10')

SELECT
  L.point_id,
  L.timestamp,
  L.value
FROM
  LoggerTable AS L
  INNER JOIN #Points AS P ON L.point_id = P.point_id
WHERE
  L.timestamp BETWEEN @startDatetime AND @endDatetime
ORDER BY
  L.point_id,
  L.timestamp
© www.soinside.com 2019 - 2024. All rights reserved.