OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

データベースの検索について

  • すぐに回答を!
  • 質問No.205451
  • 閲覧数71
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 20% (24/115)

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

上記の構成のテーブルにおいて
指定日付(例:20020125)から、5レコード目の
データを抽出するときの、SQLの組み方を教えてください。
PLSQLを使用して、上記のDBをアクセスし、5レコード目
(レコードが持っている営業日)を抽出しようとしています。よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル7

ベストアンサー率 42% (6/14)

自宅に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営業日の中で最小の営業日を抽出」

質問の要件を満たしているかどうかわかりませんが、お役に立てれば幸いです。
では
お礼コメント
patak

お礼率 20% (24/115)

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

その他の回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 61% (75/121)

CURSORを使えば良いかと思います。 途中までソースを書いたのですが、PL/SQLはしばらくやっていないので、UPする自信がなくなりました。 あと、ご存じとは思いますが、目的のキーでソートをかけるのをお忘れなく。 すいません。こんな回答でm(_ _)m ...続きを読む
CURSORを使えば良いかと思います。
途中までソースを書いたのですが、PL/SQLはしばらくやっていないので、UPする自信がなくなりました。
あと、ご存じとは思いますが、目的のキーでソートをかけるのをお忘れなく。
すいません。こんな回答でm(_ _)m
お礼コメント
patak

お礼率 20% (24/115)

やはり、カーソルになるのですか。いろいろ考えてみます。
投稿日時 - 2002-01-30 13:12:26


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ