从记录器表构建SQL查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从记录器表构建SQL查询相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

以上是关于从记录器表构建SQL查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询从链接表中检索最后一条记录[重复]

用于从 N 记录的其他表值更新值的 SQL 查询

用于从多个表中查找具有表名的所有记录的 SQL 查询

SQL Server:本地查询时间与网络查询时间...和锁定

连接多个表后如何从sql查询结果中删除重复记录

SQL语句如何实现从数据库表中查询随机数据的记录