• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:同一テーブル内での比較(2つの条件での比較))

同一テーブル内での比較(2つの条件での比較)

このQ&Aのポイント
  • 商品毎に異なる商店の価格差を大きい順にソートする方法について教えてください。
  • SQL分を使用して、商品毎に商店1とそれ以外の商店の価格差を求めることができます。
  • 希望の出力結果は、価格差、商品名、商店の順で表示される形式です。

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

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

「商品ID」カラムの値が「商品A」や「商品B」で、「商店ID」カラムの値が「商店1」や「商店2」なのでしょうか? 少し違和感が有りますが、それは置いておいて・・・。 「商店1」以外の行を、同じ商品IDの「商店1」の行と結合して、価格の差を取れば良いかと。 例) ------------------------------------ SELECT a.価格 - b.価格 AS 価格差, a.商品ID AS 商品名, a.商店ID AS 商店 FROM 対象テーブル a INNER JOIN 対象テーブル b ON (a.商品ID = b.商品ID AND b.商店ID = '商店1') WHERE a.商店ID <> '商店1' ORDER BY a.価格 - b.価格 DESC; ----------------------------------------

参考URL:
http://dev.mysql.com/doc/refman/5.1/ja/join.html
yamakiyo2
質問者

お礼

解説付きで助かりますし、よくわかりました。 きっちり出てきました。早々の回答、ありがとうございます。 ありがとうございました。

その他の回答 (1)

回答No.1

こんな感じでどうでしょう。 select t2.価格-t1.価格 as 価格差 ,t1.商品名 ,t1.商店 from テーブル1 as t1 left join ( select 価格,商品 from テーブル1 where 商店=商店1 ) as t2 on t1.商品 = t2.商品 where t1.商店<>商店1

yamakiyo2
質問者

お礼

さすがです。きっちり出てきました。 早々の回答、ありがとうございます。あとは順序をつければOKですね。 ありがとうございました。

関連するQ&A