2016-07-21 133 views
0

我有一個有很多列的表。其中一列是AppointmentNo,此欄可以是1或2(基本上它可以是第一次約會或後續)。SQL Server 2008選擇

一些列的包括

tblAppoints

ClientID 
ClientFirstName 
ClientLastName 
ClientAddress 
ClientAppointmentNo 

我試圖從該表中選擇clientID的,但是,我不希望看到任何的客戶端,其中ClientAppointmentNo = 2。所以只顯示有AppointmentNo = 1的客戶,沒有ClientAppointmentNo = 2的客戶。

回答

2

這裏有一個方法,使用聚合:

select a.clientId 
from tblAppoints a 
group by a.clientId 
having max(ClientAppointmentNo) = 1; 

如果你想看到的約會細節,再一個方法是使用窗口功能:

select a.* 
from (select a.*, 
      max(ClientAppointmentNo) over (partition by a.clientId) as maxcan 
     from tblAppoints a 
    ) a 
where maxcan = 1; 
+0

謝謝!兩種方式都有效! – user6576015