我试图在Aspen V8.8查询中使用SQLPLUS之前获取值和值。
我在Oracle库上发现了对我来说似乎很完美的函数“ LAG”。但是使用此功能时出现错误
下面是我的代码:
SELECT IP_TREND_VALUE, IP_TREND_TIME, LAG(IP_TREND_VALUE,1,0) OVER (ORDER BY IP_TREND_TIME) as valeur_prec from IP_DIDef_1 WHERE name='my_value' and IP_TREND_TIME BETWEEN '15-APR-19 00:00:00' and '28-APR-19 00:00:00' ORDER BY IP_TREND_TIME
使用此代码,我得到一个错误“期望保留字FROM”。 你能告诉我我的错误在哪里,或者我怎么做才能使事情有所不同?
非常感谢
致谢
答案 0 :(得分:1)
请记住,数据历史学家离SGBD数据库很远。即使可以通过ODBC驱动程序使用SqlPlus语法,它也不是标准的Sql,甚至与Oracle或SqlServer Sql都不一样。
话虽这么说,我的猜测(我想您对记录的数据感兴趣,而不是插值的数据)将是:
LOCAL dTs1 TIMESTAMP;
LOCAL dTs2 TIMESTAMP;
dTs1 = (
SELECT MAX(IP_TREND_TIME)
FROM "[Tag name]"
WHERE IP_TREND_TIME BETWEEN '15-APR-19 00:00:00' AND '28-APR-19 00:00:00'
AND ABS(IP_TREND_VALUE - [value you search]) < [precision you are ok with]
);
--WRITE dTs1;
SET MAX_ROWS = 1;
dTs2 = (
SELECT IP_TREND_TIME
FROM "[Tag name]"
WHERE IP_TREND_TIME >= '15-APR-19 00:00:00' AND IP_TREND_TIME < dTs1
);
--WRITE dts2;
SET MAX_ROWS = 2;
SELECT IP_TREND_TIME, IP_TREND_VALUE
FROM "[Tag name]"
WHERE IP_TREND_TIME IN (dTs1, dTs2)