- ベストアンサー
ビューの作成で
オラクルのテーブルデータでいつも使うデータをビューで作成したいと思っています。 ●テーブルデータ (No = 履歴順) 人 No 仕事 ----- --- -------------- 田中 1 青山商事 田中 2 山手商事 田中 3 寿商事 佐藤 1 関東北電気 鈴木 1 おにぎり工場 鈴木 2 せんべい工場 でそれぞれの人の最大Noと仕事をビューで作りたい ●ビューデータ (最大No = 最新の仕事) 人 No 仕事 ----- --- -------------- 田中 3 寿商事 佐藤 1 関東北電気 鈴木 2 せんべい工場 このようなビューを作成する場合のSQLをアドバイス下さい。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 ビュー作成のアドバイスとしては、 「なるべく使わない」「必要な時にSQLで取得する」 方がレスポンス的にはいいですよ。 (^^ゞ
その他の回答 (2)
- NAATAN
- ベストアンサー率33% (57/170)
以下のようなSQL文を実行すればビューは作成可能だと思います。 CREATE OR REPLACE VIEW ビュー名 (人,NO,仕事) AS SELECT 人,NO,仕事 FROM テーブル名 WHERE (人,NO) IN (SELECT 人,MAX(NO) FROM テーブル名 GROUP BY 人) 因みに、「No」は「NO」に変換されてしまいました。
お礼
アドバイスありがとうございます。 早速試してみました。 クライアントからビューをアクセスするとレスポンス的に問題があるかなと。 なかなかビューを使うのも難しいですね。
- utakataXEX
- ベストアンサー率69% (711/1018)
ビュー云々と質問内容は関係ないですね。 やり方はいろいろありますが、よほど古いバージョン(7.2以前) でなければこんな感じで。 select a.* from test a ,(select 人,max(No) No from test group by 人) b where a.人 = b.人 and a.No = b.No
お礼
アドバイスありがとうございます。 その後ビューをいろいろ試してみたのですが、フィールド数の多いビューだとレスポンスが悪いことがわかりました。 ビューは最低限使って、SQL処理することにしました。