2016-07-21 25 views
0

Ich habe eine Tabelle mit vielen Spalten. Eine der Spalten ist AppointmentNo, und diese Spalte kann entweder 1 oder 2 sein (im Grunde ist es entweder ein erster Termin oder eine Folge).SQL Server 2008 SELECT

Einige der Spalten enthalten

tblAppoints:

ClientID 
ClientFirstName 
ClientLastName 
ClientAddress 
ClientAppointmentNo 

Ich versuche clientID ‚s aus dieser Tabelle zu wählen, aber ich will keine Kunden sehen, wo die ClientAppointmentNo = 2. Zeigen Sie also nur Clients mit AppointmentNo = 1, keine Clients mit ClientAppointmentNo = 2. Hier

Antwort

2

ist eine Methode, mit Aggregation:

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

Wenn Sie die Termindetails sehen möchten, dann ein Verfahren verwendet Fensterfunktionen:

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

Dank! Beide Wege funktionieren! – user6576015