電子書籍の厳選無料作品が豊富!

ORACLE10g EXISTS文について質問があります。

まず次のようなTBLが存在します。

休業MT
店舗CD | 休業区分 |  開始日  |  終了日 |
AAA     09     20110311  20110311
AAA     09     20110313  20110325
AAA     03     20110330  20110330

月売上TR
店舗CD |  年月  |  客数  |  売上数 | 稼動タイプ
AAA    201103   100     300    特殊
AAA    201104   200     400    フル


月売上TRの稼動タイプの判別を行う場合
以下の条件があります。

・休業MTに同月、同店舗のレコードが存在しない場合にフルを適用
・休業MTの休業区分 = 09 且つ その休業日合計が同月内で7日以内場合に稼動タイプにフルを適用。
・休業MTの休業区分 = 03 である限り、同月に何回休業してもフルを適用

上記の条件をCASE文ですべて実現しようしたとき、
2番目の条件の休業日合計が7以下のものをうまく抽出できません。
CASE文やEXISTS文で集計項目に対して条件をつけることは可能でしょうか?

できれば、サンプルSQLを教えていただきたいです。
よろしくお願いします。

A 回答 (1件)

記載のテーブルと質問内容の関連がわかりづらいのですが・・・



月売上TRは稼働区分が設定されていますが、すでに存在するテーブルなのですか?
それとも別のテーブルを基にこのデータを抽出したいということですか?

>・休業MTの休業区分 = 09 且つ その休業日合計が同月内で7日以内場合に稼動タイプにフルを適用。
>・休業MTの休業区分 = 03 である限り、同月に何回休業してもフルを適用
これらはどちらが優先されるのでしょうか?
記載の休業MTを、店舗CD:AAA・年月:201103で見ると
休業区分:03で休業日数:14、休業区分:09で休業日数:1 のデータが取得できることになります。
この場合はどうなるのでしょうか?記載の月売上TRでは"特殊"となっていますけど。

また、休業MTの開始日と終了日が月またぎになっていることはないのでしょうか。
それによって休業日の計算のしかたが全然ちがってくると思います。

もうちょっと正確な情報を教えていただけますか?

また、CASEやEXISTSをどこでどう使おうとしているのでしょうか。
うまくいかないというSQLも記載できますか?
    • good
    • 0

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

関連するカテゴリからQ&Aを探す