這是很難形容我想的話所以這裏的表我處理基於在同一列
Persons
First | Last | ID
John | Smith | 1
Jane | Smith | 2
PerKey
ID | KW | HITS
1 | P.E. | 1
1 | M E | 1
1 | HVAC | 4
2 | Acct | 7
多種標準選擇單列我想要做的就是從人那裏選擇標準符合多行。
例如,我想知道誰有'體育' AND'M E'和'HVAC'。
在這種情況下,將返回約翰史密斯。
我已經能夠使用IN和HAVING子句完成此操作,但這限制了我無法過濾個人擁有KW和OR子句的次數。
說我只希望有人在'暖通空調'上有5次命中,這將理想地約翰史密斯。這裏的查詢我有個大氣壓:
SELECT first, last
FROM persons
LEFT JOIN perkey ON persons.id = perkey.id
WHERE kw IN ('P.E.','M E','HVAC')
GROUP BY first, last, persons.id
HAVING COUNT(DISTINCT kw) = 3
我使用SQL Server 2008。我無法改變的數據結構要麼因爲它是專有的。感謝您的任何幫助/建議。
每個'id'對於每個'kw'都有一個單獨的行,而'hits'列是我想過濾掉的。即我想要一個HVAC'kw'和> 5的'hits'列。那有意義嗎? – shadowjfaith