質問: sql 前日分と相違があればアラート その2 いつもお世話になっております。 以前下記についてお伺いいたしました。 今回はその続編です。 http://oshiete.goo.ne.jp/qa/7772587.html 何卒ご教授ください。 よろしくお願いいたします。 例えば下記のようなテーブルがあるとします。 【運賃テーブル】 日付 出発 到着 運賃 10月1日 東京 青森 8000円 10月1日 東京 大阪 5000円 10月1日 東京 福岡 8000円 10月1日 青森 大阪 6000円 10月1日 青森 福岡 9500円 10月1日 大阪 福岡 5000円 10月1日 大阪 青森 9800円 10月2日 東京 青森 null 10月2日 東京 大阪 5000円 10月2日 東京 福岡 8500円 10月2日 青森 大阪 6000円 10月2日 青森 福岡 9500円 10月2日 大阪 福岡 null 10月2日 大阪 青森 9000円 10月3日 東京 青森 8000円 10月3日 東京 大阪 5000円 10月2日 東京 福岡 8500円 10月2日 青森 大阪 6000円 10月2日 青森 福岡 9500円 10月2日 大阪 福岡 5500円 10月2日 大阪 青森 9000円 仮に運賃を日付で比較した場合(上記を水平展開した場合) 下記のようになります。 【運賃比較】 10月1日 10月2日 10月3日 東京 青森 8000円 ------ 8000円 東京 大阪 5000円 5000円 5000円 東京 福岡 8000円 8500円 8500円 青森 大阪 6000円 6000円 6000円 青森 福岡 9500円 9500円 9500円 大阪 福岡 5000円 ------ 5500円 大阪 青森 9800円 9000円 9000円 ここからが前回と違うのですが 上記の場合、nullがあったら、さらにその前日と 比較する方法を教えていただきたいのです。 ※ 最悪、比較データがない場合、過去1週間前 までさかのぼる必要がでることもありえます。 つまり上記でいえば 10月3日の料金は前日値と比べ... 【運賃変更】 東京 青森 変更なし 東京 大阪 変更なし 東京 福岡 変更なし 青森 大阪 変更なし 青森 福岡 変更なし 大阪 福岡 変更あり 大阪 青森 変更なし もしくは 大阪 福岡 変更あり の様に、「大阪 福岡」に変更があったことを アラート表示させたいのです。 【その他条件】 ・このsqlコードは毎日回します ・前日にもデータがなく、前々日のデータと 比較しなくてはならないこともあります。 もしくは過去1週間ほどさかのぼらないと 比較対象のデータがないこともあります。 ・case文を使って【運賃比較】の様なテーブルを作り ローカルでvba等で比較させることも考えましたが データが大量すぎて、その方法は使えませんでした。 ・【運賃テーブル】の様な状態でデータをexportし それをローカルのexcelでピボットをかけるという方法も 同様な理由で不可能でした。 何卒よろしくお願いいたします。
回答: select 日付, 出発, 到着, 通常, 特急, (特急+料金) as 特急料金 from 運賃テーブル 「料金」という項目は運賃テーブルに存在するのでしょうか? 上記のsqlを単体で動作させた場合、正常に終了するのでしょうか? 元の質問に特急料金がどうからむのか...... >原因としては「from 運賃テーブル」の部分であろうかと思われます。 >実際にはこのテーブルはもう少々複雑で、その部分で何らか私の >コード記述ミスがあるのかもしれません。 そのコードを挙げることは難しいのでしょうか? 「ora-12801」以外のメッセージは出ていないのでしょうか? 私自身は「ora-12801」というエラーメッセージに遭遇したことはありません。 (サポート行きかなとも思ってしまいます) 問題点を整理して新規の質問として挙げなおしたほうがいいかもしれませんね。 (その場合は、oracleのバージョンもお忘れなく) >ちなみにエラーの内容ですが・・・ これエラーの内容ではなくて、対処方法ではないですか?