柔軟に働き方を選ぶ時代に必要なこと >>

SELECT 担当, 商品, 売上品 FROM TableName
WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪')
AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜')
AND 売上品 IN ('竹輪','胡瓜')
とサブクエリで出したいものが出ますが・・・あいまい検索にしたいと思っています。
SELECT 担当, 商品, 売上品 FROM TableName
WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%竹輪%')
AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%胡瓜%')
AND 売上品 IN ('竹輪','胡瓜')
まではわかるのですが売上品 IN ('竹輪','胡瓜')はどうすればよいのでしょうか?

A 回答 (2件)

質問者さまが何度か類似の質問をされているのですが、元のクエリに対するコメントは私だったので。


http://qanda.rakuten.ne.jp/qa4197103.html

「竹輪と胡瓜の<両方>を売上品に持っている担当のデータを、竹輪または胡瓜に関してのみ表示する」って内容だったと思います。
それでこんなクエリになっているのですが、その流れからいくと、以下の通りにするしかないでしょうね。

SELECT 担当, 商品, 売上品 FROM TableName
WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%竹輪%')
AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 like '%胡瓜%')
AND (売上品 LIKE '%竹輪%' OR 売上品 LIKE '%胡瓜%')
    • good
    • 0

回答の前に・・


> SELECT 担当, 商品, 売上品 FROM TableName
> WHERE 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '竹輪')
> AND 担当 IN (SELECT 担当 FROM TableName WHERE 売上品 = '胡瓜')
> AND 売上品 IN ('竹輪','胡瓜')
というSQLは、
SELECT 担当, 商品, 売上品 FROM TableName
WHERE 売上品 IN ('竹輪','胡瓜')
に等しくないですか?(無駄に難しく書いてるように思いますけど??)

で、回答ですが・・
WHERE 売上品 IN ('竹輪','胡瓜')
は、
WHERE 売上品 = '竹輪' or 売上品 = '胡瓜'
と同じなので、
SELECT 担当, 商品, 売上品 FROM TableName
WHERE 売上品 like '%竹輪%' or 売上品 like '%胡瓜%'
のような記述が適正かと思いますよ。
    • good
    • 0

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

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


人気Q&Aランキング