访问SQL与查询不同

访问SQL与查询不同,sql,ms-access,Sql,Ms Access,我试图返回一个销售人员id和销售人员姓名列表,其中销售人员id在FL或HI中没有客户 我现在的问题是 SELECT DISTINCT s.salesperson_id, s.salesperson_lname FROM salesperson_t AS s inner join customer_t AS c on s.salesperson_id=c.salesperson_id WHERE c.state not in ('HI', 'FL'); 如果HI和FL中都有客户,则返回一个列表,

我试图返回一个销售人员id和销售人员姓名列表,其中销售人员id在FL或HI中没有客户

我现在的问题是

SELECT DISTINCT s.salesperson_id, s.salesperson_lname
FROM salesperson_t AS s inner join customer_t AS c on s.salesperson_id=c.salesperson_id
WHERE c.state not in ('HI', 'FL');
如果HI和FL中都有客户,则返回一个列表,不包括销售人员id和销售人员名称,而不是HI或FL中只有一个客户


而且

如果我理解正确,您只想退回那些在HI或FL(或两者)都没有客户的销售人员。如果是这样,您可以使用
having
检查集团是否有HI或FL客户,如果有,则将其排除在外:

SELECT s.salesperson_id, s.salesperson_lname
FROM salesperson_t AS s 
INNER JOIN customer_t AS c on s.salesperson_id=c.salesperson_id
GROUP BY s.salesperson_id, s.salesperson_lname
HAVING COUNT(CASE WHEN c.state IN ('HI', 'FL') THEN 1 END) = 0

如果我理解正确,您只想返回那些在HI或FL(或两者)中都没有客户的销售人员。如果是这样,您可以使用
having
检查集团是否有HI或FL客户,如果有,则将其排除在外:

SELECT s.salesperson_id, s.salesperson_lname
FROM salesperson_t AS s 
INNER JOIN customer_t AS c on s.salesperson_id=c.salesperson_id
GROUP BY s.salesperson_id, s.salesperson_lname
HAVING COUNT(CASE WHEN c.state IN ('HI', 'FL') THEN 1 END) = 0