商品名 入荷日 価格 産地 都道府県 国名
りんご 2019/05/01 100 国内 千葉 null
りんご 2019/03/01 100 国外 null アメリカ
ばなな 2019/01/01 150 国内 沖縄 null
ばなな 2019/02/01 170 国外 null フィリピン
めろん 2019/11/01 150 国内 北海道 null
上記のテーブルがあります。
これを以下のような形で取得したいです。
名称 入荷日 価格 国内産地 国外産地
りんご 2019/05/01 100 千葉 アメリカ
ばなな 2019/02/01 170 沖縄 フィリピン
メロン 2019/11/01 150 北海道 null
※入荷日は最も未来の日付を設定します
※同一名称のデータは最大2つです。(上記でいうところの「りんご」「ばなな」)
※取得時の価格は入荷日と同じレコードの価格です
※入荷日が同じで価格が異なる場合は価格が高い方を取得します
前回こちら(https://teratail.com/questions/170177)で質問させていただき、
既存の解決策を見ながらSQLを作成したのですがうまくいきませんでした...
(「group byの式ではありません」エラーとなりました)
SQL
1select 2 名称 3 , 入荷日 4 , 価格 5 ,(select 都道府県 from フルーツテーブル FT where FT.名称=FT2.名称 and FT.都道府県=FT2.都道府県) as 国内産地 6 ,(select 国名 from フルーツテーブル FT where FT.名称=FT2.名称 and FT.国名=FT2.国名) as 国外産地 7from フルーツテーブル FT2 8group by 9 名称 10 , 入荷日 11 , 価格
お手数おかけして大変申し訳ないのですが助けていただけませんでしょうか。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー