0

日付の列で利用可能な最も早い日付を返すために使用するストアド プロシージャがあります。最も古いものだけを返す必要があり、現在は日付演算を使用して返される行の数を減らしています。ただし、このようにすると、最初の 2 つの上位の戻り値のループでプロシージャがスタックします。つまり、読み取られない行がいくつかあることを意味します。次の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 に答える