Я хочу получить сотрудников, не проданных за последние 3 дня до 25 января 1997 года, клиентам из "США".
Таблица заказов
OrderID CustomerName EmployeeId Orderdate
10248 C1 1 1997-01-25 00:00:00:000
10249 C2 3 1997-0-24 00:00:00:000
10250 C3 2 1997-01-23 00:00:00:000
10251 c4 5 1997-01-22 00:00:00:000
10251 c5 4 1997-01-23 00:00:00:000
Сотрудники
EmployeeID Emp_name
1 E1
2 E2 and so on till e5
Клиенты
CustomerID Country
C1 USA
C2 UK
C3 Brazil
C4 UK
C5 USA
Желаемый результат
EmployeeID
2
3
5
Запрос выполнен
select EmployeeID
from Employees e1
where employeeid not in
(
select o.EmployeeID
from orders o
full join customers c on o.CustomerID=c.CustomerID
where c.Country = 'USA'
and o.RequiredDate >= dateadd(day,-3, '1997-01-25')
)
- Всего было от e1 до e5 сотрудников.
- e1 обслужил клиента c1 25 января 1997 года. c1 из США
- e4 обслужил клиента c4 23 января 1997 г. (за 3 дня до 25 января 1997 г.), а c4 из США.
- Так что получите список сотрудников не в e1 и e4 из общего списка сотрудников.
Однако я получаю пустой результат, так как ни одной строки. может кто-нибудь, пожалуйста, помогите. (это всего лишь образец): данные из базы Northwind. Я только что создал образцы данных на случай, если у кого-то нет базы данных Northwind
full join
вернет всех сотрудников при любыхon
условиях - person Serg   schedule 09.05.2020select EmployeeID, from
уже сломан, у него есть лишняя запятая, которая не компилируется. Если это то, что вы действительно пробовали, то это даже не сработало? - person Dale K   schedule 09.05.2020