2010-06-08 128 views
0

我正在爲我們的系統中的客戶端過濾。每個客戶都有一個每月執行的計劃。對於每個計劃可以進行多次訪問,並且對於每次訪問,可以有不同的訪問任務,每個任務都屬於一個類別,例如,SQL select語句篩選器

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 

我想爲只接收TaskTaskID爲19的TaskCategory'P'的客戶端計數。我嘗試使用下面的查詢,但它不會在P類

SELECT COUNT (ClientNo) 
FROM Tasks 
WHERE VisitTask NOT IN (02,03....18,20,21) 

結果仍然被客戶VisitTaskID的,我認爲我是濾除濾除其他VisitTasks。 無論屬於哪個類別,每個VisitTaskID都是唯一的。

任何幫助,非常感謝。

回答

3

客戶誰只有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')