• ベストアンサー

SQLを教えてください

お世話になります。 商品マスタがあります。 年・品番・品名のフィールドです。 年が違えば、同じ品番でもデータとしては違うものとして存在します。 2010年の商品マスタをリスト表示したいのですが 2011年にもある品番は省きたいのですが、 どのように書けばいいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.2

select 年,品番,品名 from 商品マスタ a where 年 = '2010' and not exists ( select * from 商品マスタ b where a.品番 = b.品番 and b.年 = '2011'); でどうでしょうか。

angelinaane
質問者

お礼

yamada_g様、回答ありがとうございます。 私も、 いろいろ調べて not exists というのが使えそうだと今さっき 分かりました。 合ってた! ありがとうございました。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

select 年,品番,品名 from hoge where 年 = 2010 and 品番 not in ( select 品番 from hoge where 年 = 2011 ) とか

angelinaane
質問者

お礼

SaKaKashi様、回答ありがとうございます。 いろいろ調べて not exists にたどり着きました。 INでもできたんですね。 勉強になります。 ありがとうございました。

関連するQ&A