アプリ版:「スタンプのみでお礼する」機能のリリースについて

ORACLE8.0.5において
日付を管理するテーブル(Work)において
<構成>
 workday char(08) not null (key)
work7day char(01)
workym char(06)

上記の構成のテーブルにおいて
指定日付(例:20020125)から、5レコード目の
データを抽出するときの、SQLの組み方を教えてください。
PLSQLを使用して、上記のDBをアクセスし、5レコード目
(レコードが持っている営業日)を抽出しようとしています。よろしくお願いします。

A 回答 (2件)

自宅にOracleの環境がありませんので検証をしていませんが、私なりに考えたSQL文です。



SELECT MIN(sub_tbl.workday)
FROM (
SELECT tbl.workday
FROM (
SELECT workday
FROM work
WHERE workday <= '20020125'
ORDER BY workday DESC
) tbl
WHERE ROWNUM = 6
) sub_tbl
;

一番内側のSELECT文で、「指定日付以前の営業日を降順に抽出」
二番目のSELECT文で、「指定日付から5日前まで(6営業日分)のデータを抽出」
外側(三番目)のSELECT文で「6営業日の中で最小の営業日を抽出」

質問の要件を満たしているかどうかわかりませんが、お役に立てれば幸いです。
では
    • good
    • 0
この回答へのお礼

上記のやり方で、何とか情報を絞り込んで抽出することができました。今回の場合は、そのSQLをWeb画面に取り込んでそこから、情報のチェックをやることになるので、もう少し、SQL文の絞込みを考えなければならないです。
ありがとうございました。

お礼日時:2002/01/30 13:15

CURSORを使えば良いかと思います。


途中までソースを書いたのですが、PL/SQLはしばらくやっていないので、UPする自信がなくなりました。
あと、ご存じとは思いますが、目的のキーでソートをかけるのをお忘れなく。
すいません。こんな回答でm(_ _)m
    • good
    • 0
この回答へのお礼

やはり、カーソルになるのですか。いろいろ考えてみます。

お礼日時:2002/01/30 13:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!