いつもお世話になっております。
表題の件について教えてください。

使用SQL:Oracle


例えば下記のようなテーブルがあるとします。

【運賃テーブル】
日付   出発  到着 運賃
10月1日 東京 青森 8000円
10月1日 東京 大阪 5000円
10月1日 東京 福岡 8000円
10月1日 青森 大阪 6000円
10月1日 青森 福岡 9500円
10月1日 大阪 福岡 5000円
10月1日 大阪 青森 9800円
10月2日 東京 青森 8000円
10月2日 東京 大阪 5000円
10月2日 東京 福岡 8500円
10月2日 青森 大阪 6000円
10月2日 青森 福岡 9500円
10月2日 大阪 福岡 5000円
10月2日 大阪 青森 9000円


仮に運賃を日付で比較した場合、下記のようになります。
【運賃比較】
      10月1日 10月2日
東京 青森 8000円 8000円
東京 大阪 5000円 5000円
東京 福岡 8000円 8500円
青森 大阪 6000円 6000円
青森 福岡 9500円 9500円
大阪 福岡 5000円 5000円
大阪 青森 9800円 9000円


この場合、値上がりがあったら、下記の様に
値上がり(値下がり)があった路線について一目で分かる
SQLコードはどの様にかけば良いのか教えてください。

【運賃変更】
出発 到着 10月1日 10月2日
東京 福岡 8000円 8500円
大阪 青森 9800円 9000円


もし上記が可能であるならば、【運賃比較】テーブルの様に
データを選択剃る方法についてもご教授ください。

よろしくお願いいたします。

A 回答 (1件)

あなたの想いとは違うかもしれないけど



-- 運賃比較
SELECT 日付, 出発, 到着, 運賃,
LAG(運賃) OVER (PARTITION BY 出発, 到着 ORDER BY 日付) AS 前日
FROM 運賃テーブル;

-- 運賃変更
SELECT *
FROM (
SELECT 日付, 出発, 到着, 運賃,
LAG(運賃) OVER (PARTITION BY 出発, 到着 ORDER BY 日付) AS 前日
FROM 運賃テーブル
) WHERE 運賃 <> 前日;
    • good
    • 0
この回答へのお礼

dda167さん

さっそくありがとうございました。

本日【運賃変更】の方を試しましたところ
考えていた通りのデータがExportされました。

SQLのコードだけでもある程度の事はできるのだと分かったことも
非常に大きな収穫となりました。

また質問させていただくこともあるかと思います。
その際はまたぜひお付き合いください。

よろしくお願いいたします。

お礼日時:2012/10/30 22:53

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEnterpriseManager 10g

10日で覚えるオラクル10gの体験版をインストールしています。OSはvista ultimateです。本に書いてあったとおりに、LoopBackAdapterをインストールし、hostファイルも変更しました。
webのEnterpriseManagerを起動し、ユーザ:system パス:orcl 接続:normalでログインしました。
しかし、エラーが出ているようで
java.lang.Exception: Exception in sending Request :: null
と表示されています。
データベースも起動していないようです。
何が原因なのでしょうか。

Aベストアンサー

おそらくその本のバージョンは10.2.0.1のものだと思われます。
Vistaに対応しているバージョンは10.2.0.3.0以降です。
参考URL)
http://otndnld.oracle.co.jp/document/products/oracle10g/102/windows/B25251-07/toc.htm#BABGFAJI

したがってOSを替えるかVista対応のインストールメディアが必要になると思います。
Vista対応メディアは
「Oracle Database 10g Release 2 (10.2.0.3.0) for Microsoft Windows Vista (32-bit)
and Microsoft Windows Server 2008 (32-bit)」 です。

Q10g の読み方

基本的な質問で申し訳ありません。
新Ver 10gの読み方の質問です。

9iは「ナインアイ」でしたので、
10gは「テンジー」でよいのでしょうか?

Aベストアンサー

「テンジー」で良いようです。
参考URLに読み方が記載されていました。

参考URL:http://www.ctc-g.co.jp/~cua/newwave/nw48/05.html

QOracle10gお試し版

をFedoraCore5Linuxにインストールしたいのですが
以下のうちどれをインストールすべきなのかを教えてください
とりあえずJava EditionをDLしてみたのですがこれでいいのでしょうか?
また以下ものの違いを教えてください



Studio Edition
Oracle JDeveloper 10g (10.1.3.1.0) Studio Edition
2006/11/13

J2EE Edition
Oracle JDeveloper 10g (10.1.3.1.0) J2EE Edition
2006/11/13

Java Edition
Oracle JDeveloper 10g (10.1.3.1.0) Java Edition
2006/11/13

Aベストアンサー

JDeveloper はJavaの開発ツールです(pl/sqlのデバックなども出来るようですが)。
JDeveloper はFedoraCore5Linuxには正式には対応していません。
http://www.oracle.co.jp/tools/jdev1980/faq.html

http://otn.oracle.co.jp/software/products/jdev10g/index.html
から動作環境を確認してみてください。

各エディションの相違点は
http://otndnld.oracle.co.jp/products/jdev/htdocs/featurematrix/featurematrix.html
を参照ください。

Qoracle10gのリカバリマネージャー

oracle10gのリカバリマネージャーで自動的にバックアップを取ろうと思います。アーカイブログモードで、スケジュールからまずレベル0のバックアップをとって、日時で増分バックアップを取るように設定できたのですが、アーカイブログが延々たまっていくようでこまっています。増分バックアップとアーカイブログでディスクがそんなに遠くないうちにMAXになりそうです。不必要なアーカイブログをスケジュール的に削除してくれるような設定(スクリプト?)などはあるのでしょうか?

Aベストアンサー

OEM から設定されているのであれば、スケジュールを組むときに、不要になったアーカイブログを削除みたいなチェックボックスがあったように思います。

手動で RMAN スクリプトを組まれている場合は、以下のように delete input をつければバックアップとして取得されたアーカイブ・ログはそのときに削除されます。

RMAN> backup archive log all delete input;

QOracle Master Silver 10g について

Oracle MasterのSilver 10gを取得しようと思っているのですが、
取得までの流れについて教えてください。

Silver 10gを取得するためにはBronze 10gの科目も取得する必要が
あるのでしょうか。

Silver DBA10g一つを取得すればSilver 10gに認定されるのでしょうか。

よろしくお願いします。

Aベストアンサー

Silver取得のためには、Bronzeは必須です。

以下のPDFのP4を参照して下さい。
http://www.oracle.com/global/jp/education/certification/doc/om_booklet_v2.pdf

SilverのDBAはBronzeのDBAIの延長上のようなものです。
DBAIの範囲をさらに深く突っ込んだり、DBAIでは触れられていない機能も学習します。

更に言うと、GoldもSilverの延長です。
Silverでの苦労に比べると、SilverからGoldへのステップアップは
かなり楽に感じると思います
が、金銭的にはかなりの苦痛です。


このカテゴリの人気Q&Aランキング

おすすめ情報