Нужна помощь с нечетным запросом доступа - PullRequest
2 голосов
/ 08 июня 2011

У меня есть база данных Access, которая содержит записи об обучении сотрудников.Если сотрудник прошел обучение или был запланирован для обучения, в таблице связей есть запись.Если нет, то нет записи.Я хочу опросить всех сотрудников, которые не обучены определенной вещи, но нет никаких записей.

База данных выглядит следующим образом:

Table: Trainings   
TrainingID    AutoNumber   
Description   Text   
...

Table: EmployeeTrainings
EmployeeTrainingID     AutoNumber   
TrainingID             Number
EmployeeID             Number
ScheduledDate          Date/Time
...

Table: Employees  
EmployeeID       Number  
FullName         Text  
...

Я хочу получить результат, подобный следующему со следующими полями длясотрудники, не прошедшие обучение по данному обучению:

Trainings.Description, Employees.FullName, EMployeeTrainings.ScheduledDate

Как мне этого добиться?Мне нужно руководство.

1 Ответ

2 голосов
/ 08 июня 2011

Я думаю, что это должно быть для вас ... Однако, поскольку они не были бы обучены, мы не можем составить для них Дату обучения, поэтому я включил только две колонки ...

select
      t.Description,
      emp.FullName,
      et.ScheduledDate
   from
      trainings t
         join employees emp
            left join EmployeeTrainings et
               on emp.EmployeeID = et.EmployeeID
               AND et.TrainingID = t.TrainingID
   where
      t.TrainingID IN ( 1, 3 )
   order by
      t.Description,
      emp.FullName

Это должно дать вам то, что вы хотите ... выполнив левое соединение, оно возвращает все записи в левой части объединения с записями в правой таблице.Если на правой стороне нет таких записей (следовательно, сотрудников, которые никогда не были запланированы), их значение запланированной даты будет иметь значение NULL ... Для тех, кто ДЕЙСТВИТЕЛЬНО нашел правильное соответствие, даты будут включены в набор результатов.Неприятно в отношении синтаксиса "Access" в предложении IN ... но он ДОЛЖЕН работать так же, как и в других механизмах SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...