2014-03-04 47 views
0

我的SQLServer表「用戶」就像SQL服務器 - 列沒有值「H」

User    Usertype 
--------------------------- 
Mike      S 
Sally     S 
Alan      S 
Sally     H 
Alan      S 
Mike      S 
Mike      H 

我想在此建表的查詢應該返回一個沒有「H」的用戶類型的用戶。例如,上表應該返回'Alan',因爲這個用戶沒有'H'對,而Mike和Sally至少有一個'H'。

請幫助

+0

你也可以使用EXCEPT ... – Mithrandir

回答

6

集團用戶,然後檢查每個用戶有多少H類型了。該號碼必須是0,您正在尋找的號碼。

select [user] 
from your_table 
group by [user] 
having sum(case when usertype = 'H' then 1 else 0 end) = 0 
+3

相當冷靜的解決方案 –

0

試試這個。它返回結果'唉'。

選擇從用戶那裏用戶不IN不同的用戶(
選擇從用戶a.User聯接用戶b 上a.User = b.User和a.Usertype!= b.Usertype)

演示SQL FIDDLEhttp://sqlfiddle.com/#!2/2f175/24