私のテーブルには、このようなものです:私はこのケースでそのサブアイテムすべて完了しているアイテムを---選択したい面白いトリッキーなフィルタ(タイトルにそれを記述する方法がわからない)
Item Subitem Progress
1 101 Complete
1 102 Pending
1 103 Pending
2 201 Complete
2 202 Complete
、アイテム#2。どのようにそれを行うにはどのようなアイデア? ありがとう!
私のテーブルには、このようなものです:私はこのケースでそのサブアイテムすべて完了しているアイテムを---選択したい面白いトリッキーなフィルタ(タイトルにそれを記述する方法がわからない)
Item Subitem Progress
1 101 Complete
1 102 Pending
1 103 Pending
2 201 Complete
2 202 Complete
、アイテム#2。どのようにそれを行うにはどのようなアイデア? ありがとう!
非常に多くの方法:
select Item from T group by Item
having min(Progress) = max(Progress) and max(Progress) = 'Complete'
または
having count(case when Progress = 'Complete' then 1 end) = count(*)
言い換えれば
または
having count(case when Progress = 'Complete' then null else 1 end) = 0 /* handles nulls */
または
select distinct Item from T t
where 'Complete' = all (select Progress from T t2 where t2.Item = t.Item)
本当にありがとう!!!!!!それは天才です! –
だから、あなたは基本的にあなたが示されたテーブルは、サブアイテムテーブルであり、他のアイテムのテーブルがあると仮定すると、保留中の状態
のいずれかのサブアイテムを持っていないすべての項目を...したい
SELECT *
FROM Items
WHERE ITEMID NOT IN (SELECT ITEMID
FROM SubItems
WHERE Progress != 'Complete')
、あなたは進歩<>「完全」で行が存在しないすべてのアイテムをしたいですか? –
[SQL - 列Aのすべての値Xが値Bである行を取得する](http://stackoverflow.com/questions/31481213/sql-get-rows-where-all-values-x-of-column -a-value-b) –