SQl для отображения строк, если не в другой таблице - PullRequest
2 голосов
/ 22 марта 2010

У меня есть следующий запрос, который имеет 1000 строк

select 
staffdiscountstartdate,datediff(day,groupstartdate,staffdiscountstartdate),
EmployeeID 
from tblEmployees 
where GroupStartDate < '20100301' and StaffDiscountStartDate > '20100301' 
and datediff(day,groupstartdate,staffdiscountstartdate)>1 
order by staffdiscountstartdate desc

У меня есть следующий запрос, который имеет 400 строк: т.е. сотрудники в tblemployees и в tblcards

select a.employeeid,b.employeeid 
from tblEmployees a,tblCards b 
where GroupStartDate < '20100301' 
and StaffDiscountStartDate > '20100301' 
and datediff(day,groupstartdate,staffdiscountstartdate)>1 
and a.employeeid=b.employeeid 

Как перечислить сотрудников, которые есть в tblemployees, а не в tblcards?

то есть 1000-400 = 600 строк ???

Ответы [ 4 ]

1 голос
/ 22 марта 2010

Используйте левое соединение, чтобы объединить таблицы, а затем отфильтруйте, где таблица tblCards равна нулю.

select  
    a.employeeid 
from  
    tblEmployees a
left outer join
    tblCards b
on
    a.employeeid=b.employeeid
where  
    GroupStartDate < '20100301'  
and  
    StaffDiscountStartDate > '20100301'  
and  
    datediff(day,groupstartdate,staffdiscountstartdate)>1  
and  
    b.employeeid IS NULL
1 голос
/ 22 марта 2010
select 
    a.employeeid,
    b.employeeid 
from 
    tblEmployees a
        left join
    tblCards b 
        on
            a.employeeid=b.employeeid 
where 
    GroupStartDate < '20100301' 
and 
    StaffDiscountStartDate > '20100301' 
and 
    datediff(day,groupstartdate,staffdiscountstartdate)>1 
and
    b.employeeid is null
0 голосов
/ 22 марта 2010

Как перечислить сотрудников, которые там в тблмплои, а не в tblcards

select employeeid from tblEmployees 
   where employeeid not in 
   (select employeeid from tblCards)
0 голосов
/ 22 марта 2010
 SELECT emp.EmployeeID
 FROM   tblEmployees AS emp
      LEFT JOIN tblCards AS crd ON (emp.EmployeeID = crd.EmployeeID)
 WHERE  (crd.EmployeeID IS NULL) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...