0

我有一个存储过程,我用它来返回日期列中最早的可用日期。我只需要返回最早的,目前正在使用日期算术来减少返回的行数。但是,这样做,我的程序会陷入前两个返回值的循环中,这意味着我有几行从未读取过。有人可以让我知道在下面的WHERE子句中我需要在哪里使用 MIN 函数吗?谢谢:

SELECT        **COLS**                
INTO          **VARS**
FROM          **TABLE**

INNER JOIN    **TABLE TO JOIN**
ON            **JOIN TARGET**

WHERE         ROWNUM = 1 AND LASTREADTIME < SYSDATE - (30/86400) 

ORDER BY      LASTREADTIME DESC;
4

1 回答 1

3

如果您只需要最早的日期

SELECT MIN(LastReadTime)
INTO  **VARS**
FROM table

如果您需要其他数据

SELECT t2.col1, t1.col1, t1.col2, t1.LastTreadTime
INTO **VARS**
FROM table t1
JOIN table2 t2 on t1.col1 = t2.col1
WHERE t1.LastReadTime = (SELECT MIN(t2.LastReadTime) FROM table t2);
于 2012-09-04T12:49:33.003 回答