-4

私はこのテーブルを持っています:

id        item_id         attribute           quantity
1         1               a                   2
2         1               b                   3
3         1               c                   4
4         2               a                   3
5         2               b                   3
6         3               a                   2
7         3               b                   1

数量が1を超える属性「a」と数量が2を超える属性「b」を持つすべての異なるitem_idを取得したいと思います。

入れたら

select item_id
from table_name
where (attribute = a and quantity > 1) and (attribute = b and quantity >2)

結果が得られません...

どうすればこれを達成できますか?誰かが私が来週提出する予定の論文のために早く助けてください。

4

3 に答える 3

1

where句を次のように変更します。

WHERE (attribute = a and quantity > 1) OR (attribute = b and quantity >2)

そしてあなたの選択:

SELECT DISTINCT item_id
于 2013-02-16T18:51:16.723 に答える
0

これを試して

   select item_id
   from Table1
   where (attribute = 'a' and quantity > 1) or (attribute = 'b' and quantity >2)
   group by item_id

SQLデモはこちら

于 2013-02-16T18:51:01.310 に答える
0

編集:解決しました!SOを1時間検索した後、この質問を見つけました。基本的には私のものと同じで、機能する答えがあります(最初のもの)。

SQL - 複雑な動的行の選択クエリ

基本的に、男がしたことは、必要に応じて何度でもテーブルをそれ自体に結合し、後続の結合のテーブルの名前が異なる条件として次の条件を追加することです。

于 2013-02-16T19:03:01.583 に答える