• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLについて教えてください)

SQLについて教えてください

このQ&Aのポイント
  • SQL*plusを使用して、県コードと種別コードでグルーピングし、県名マスターと種別マスターからデータを取得します。
  • 最新の年月日のレコードを取得します。ただし、フラグ0、2が存在する場合はフラグ2の年月日が最新のものを取得します。
  • 質問者はデータレポートを使用しているため、SQLでの操作が必要です。

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

  • ベストアンサー
回答No.2

こんにちは、基本的にあってて良かったです。 私は教えてgoo初心者なので、いろいろ不安もありました。 また、現在うまく行ってない件、お急ぎでしたら、どううまくいかないか記載してみてはいかがですか?当方もあまり頻繁にはみれませんが、解決を楽しみにお待ちします。

zibika
質問者

お礼

kapita2008さん、回答が遅くなってしまい申すわけありません。 おかげさまでうまくいきました。 本当にありがとうございました。

その他の回答 (1)

回答No.1

こんばんは? sql*plusと記載があるのでoracleですか? ・仕様が判らない部分があるので、間違えてるかもしれません。 ※(3)が対象外となり、同じ種別の(4)(5)(7)が対象外とならない理由。 ※フラグ2が2件以上存在するか? ・実行環境は作れませんでしたので、エラーが発生する可能性があります、イメージで掴んでください。 がんばってください。 select a.* from ( select kma.県名 , sma.種別名称 , mas.年月日 , mas.金額 , mas.変更年月日 , mas.フラグ , row_number() over(partition by kma.県名 ,sma.種別名称 order by mas.フラグ desc , mas.年月日 desc , mas.金額 desc) num from マスターデータ mas , 県名マスター kma , 種別マスター sma where mas.県コード = kma.県コード and mas.種別コード = sma.種別コード ) a where num = 1

zibika
質問者

お礼

早急な回答ありがとうございます。 いろいろ考えてできなくて困っていたので本当に助かりました。 まだテスト中ですがエラーは出ずに単純なデータであれば うまくいきました。 ちなみにDBはOracleです。 また、(3)の対象外は気にしないでください。 こちらの間違いです。 FLGについては2のデータは複数存在します。 こんなにややこしい不十分な説明のなかで親切に回答していただいて 本当にありがとうございました。