首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL数据比较

SQL数据比较
EN

Stack Overflow用户
提问于 2013-06-13 22:32:02
回答 1查看 83关注 0票数 0

我有一些用SQL存储数据的智能测量设备。这些设备每天记录一次数据,我需要能够获取最新的数据,并将其与前一天的数据进行比较。这个装置是一个带刻度盘的计数器。我们将当前的刻度盘读数和刻度盘读数的日期存储在SQL中。条件是获取当前刻度盘读数,并检查前一天的刻度盘读数是否大于当天的刻度盘读数(例如6/13/13刻度盘读数小于6/10/13)。问题是我不知道如何让SQL lookback在刻度盘读数小于"CURRENT_TIMESTAMP“的时候显示该数据。

表结构如下:

代码语言:javascript
运行
复制
-------------------------------------    
DeviceNo| RecordingDate| DialReading|
-------------------------------------     
1234    | 6/10/13      | 504
-------------------------------------
1232    | 6/10/13      | 8899   
EN

回答 1

Stack Overflow用户

发布于 2013-06-13 22:59:50

试着使用这个,让我知道如果它不工作,我不记得CTE的别名是否可以在CTE之外使用,如果可以,别名可能会导致问题,我将只是重新命名是这样的情况。

代码语言:javascript
运行
复制
--cte selects readings information based on current database system timestamp
WITH cte AS(
SELECT d.DeviceNo, r.RecordingDate, r.DialReading
FROM Devices d
inner join Modules m  on d.DeviceID = m.DeviceID
inner join Recordings r on m.ModuleID = r.ModuleID
WHERE  r.RecordingDate = CURRENT_TIMESTAMP)

--selects everything where the device numbers match cte's result set
--where the dial reading is higher than todays
--and finally where the recordingDate is less than the
--current database system timestamp

SELECT d.DeviceNo, r.RecordingDate, r.DialReading
FROM Devices d
inner join Modules m  on d.DeviceID = m.DeviceID
inner join Recordings r on m.ModuleID = r.ModuleID
WHERE cte.DeviceNo = d.DeviceNo
AND r.DialReading > cte.DialReading
AND r.RecordingDate < CURRENT_TIMESTAMP
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17089737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档