Tsql SQL选择语句筛选器

Tsql SQL选择语句筛选器,tsql,Tsql,我正在努力为我们系统中的客户设置过滤器。每个客户都有一个每月执行的计划。对于每个计划,可以有多次访问,对于每次访问,可以有不同的访问任务,每个任务属于一个类别,例如 ClientNo VisitNo VisitTaskID TaskCategory ------------------------------------------ 900001 100 19 P 900001 100 18 P 900001

我正在努力为我们系统中的客户设置过滤器。每个客户都有一个每月执行的计划。对于每个计划,可以有多次访问,对于每次访问,可以有不同的访问任务,每个任务属于一个类别,例如

ClientNo  VisitNo  VisitTaskID   TaskCategory
------------------------------------------
900001      100        19         P
900001      100        18         P
900001      100        01         H
900001      105        21         P
900001      105        19         P
900001      105        16         C
我想对仅收到任务类别“p”访问的客户进行计数。我尝试使用下面的查询,但它不会过滤掉类别P下的其他访问任务

SELECT COUNT (ClientNo)
FROM Tasks
WHERE VisitTask NOT IN (02,03....18,20,21)
结果仍然统计了我以为过滤掉的VisitTaskID的客户。 无论属于哪一类,每个访问者都是独一无二的


非常感谢您的帮助。

只有p类任务19的客户:

SELECT COUNT (ClientNo)
FROM Tasks
WHERE (VisitTask = 19 AND TaskCategory = 'P')
AND NOT EXISTS (SELECT clientno FROM tasks WHERE VisitTask =! 19 AND TaskCategory = 'P')

只有p类任务19的客户:

SELECT COUNT (ClientNo)
FROM Tasks
WHERE (VisitTask = 19 AND TaskCategory = 'P')
AND NOT EXISTS (SELECT clientno FROM tasks WHERE VisitTask =! 19 AND TaskCategory = 'P')