我有一个存储过程,用于返回日期列中最早的可用日期。我只需要最早返回,目前正在使用日期算法来减少返回的行数。但是,这样做,我的程序陷入前两个返回顶部值的循环中,这意味着我有几行永远不会被读取。有人可以让我知道我需要在下面的 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;
答案 0 :(得分:2)
如果您只需要最早的日期
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);