Select 用户使用 Ms Access 2003/2013 或 Sql 查询与 Approved list/table 关联
Select users associated to Approved list/table using Ms Access 2003/2013 or Sql query
[用户]
ID | UserID | City | Phone
----+-----------+-----------+----------
1 | John | Rome | 12345
2 | Tom | Oslo | 12345
3 | Simon | Bogota | 12345
4 | Kurt | Tokyo | 12345
[订单]
ID | UserID | OrderNr | OrderName
------------------------------------------------
1 | John | 1 | Apple
2 | John | 2 | Carrots
3 | John | 3 | Banana
4 | Tom | 3 | Banana
5 | Tom | 1 | Apple
6 | Tom | 8 | Raisins
7 | Simon | 3 | Banana
8 | Simon | 1 | Apple
9 | Kurt | 7 | Cucumber
批准列表
1 (Apple)
3 (Banana)
4 (Another order)
8 (Raisins)
现在我想 select 所有只订购的用户 contains/matches 我的批准列表。
在这种情况下,John 应该被排除在外,因为他订购的 Carrots 的 OrderNr 2 不在我批准的列表中。
如果您希望 只有 的用户在已批准列表中有订单,我建议使用条件聚合和 having
子句:
select o.userid
from orders as o
group by o.userid
having sum(iif(o.OrderNr not in (1, 3, 4, 8), 1, 0)) = 0;
having
子句过滤掉拥有 "unapproved" 产品的用户。
[用户]
ID | UserID | City | Phone
----+-----------+-----------+----------
1 | John | Rome | 12345
2 | Tom | Oslo | 12345
3 | Simon | Bogota | 12345
4 | Kurt | Tokyo | 12345
[订单]
ID | UserID | OrderNr | OrderName
------------------------------------------------
1 | John | 1 | Apple
2 | John | 2 | Carrots
3 | John | 3 | Banana
4 | Tom | 3 | Banana
5 | Tom | 1 | Apple
6 | Tom | 8 | Raisins
7 | Simon | 3 | Banana
8 | Simon | 1 | Apple
9 | Kurt | 7 | Cucumber
批准列表
1 (Apple)
3 (Banana)
4 (Another order)
8 (Raisins)
现在我想 select 所有只订购的用户 contains/matches 我的批准列表。
在这种情况下,John 应该被排除在外,因为他订购的 Carrots 的 OrderNr 2 不在我批准的列表中。
如果您希望 只有 的用户在已批准列表中有订单,我建议使用条件聚合和 having
子句:
select o.userid
from orders as o
group by o.userid
having sum(iif(o.OrderNr not in (1, 3, 4, 8), 1, 0)) = 0;
having
子句过滤掉拥有 "unapproved" 产品的用户。