У меня есть следующий доступ MS (2010) базы данных:Multiple (? Налево, пересечь) включается в MS Access
Сотрудника, Период и эксплуатация таблица заполняется, и UnitOfWork стол пустым ,
В основном у меня есть некоторые предметы, которые производятся несколькими работниками (работниками). Каждому элементу требуется несколько операций (каждый рабочий может выполнять любые операции любого элемента сколько угодно раз). Все операции имеют определенную стоимость, и мне нужно будет генерировать отчеты о том, сколько каждый сотрудник заработал «в этом месяце», выполнил ли он план и т. Д.
Я хочу сделать SELECT, чтобы увидеть следующее: UnitOfWorks, для каждой доступной комбинации Employee, Period и Operation.
Другими словами, я хочу, чтобы выбрать все возможные комбинации Работника, период и эксплуатации и LEFT JOIN UnitOfWork к результату, поэтому я могу ввести OperationsDone для каждого UnitOfWork. Я добавлю ИНЕКЕ и порядка, а позже
Я думал, что CROSS JOIN поможет (В MS Access это просто перечислению запятыми), что-то вроде этого:
SELECT * FROM (Employee, Period, Operation)
LEFT JOIN UnitOfWork on UnitOfWork.OperationId=Operation.OperationId
Но когда я выполнить этот запрос, Я получаю сообщение об ошибке «Синтаксическая ошибка при операции JOIN».
Я также попытался так:
SELECT * FROM Employee AS e LEFT JOIN
(Period AS p LEFT JOIN UnitOfWork AS uow ON p.PeriodId=uow.PeriodId)
on e.EmployeeId=uow.EmployeeId
Это только 2 присоединяется из 3-х, мне нужно, но уже с этим я получаю «JOIN Expression не поддерживается» ошибка.
Любые предложения по дизайну базы данных также приветствуются - это новая база данных, которую я разрабатываю, и я новичок в SQL.
Заранее благодарен!
Обновление: Я также думаю, может быть, я должен попробовать подзапрос? Подобно выполнению соединения CROSS (операции, сотрудника и периода) в одном запросе, а затем LEFT, присоединяющегося к UnitOfWork к результату запроса ... но как мне сделать JOIN «по нескольким полям»? И как реализовать подзапрос в доступе?
Вы должны попробовать использовать явный 'CROSS JOIN', а не запятые. –
Нет, явный CROSS JOIN не будет работать в MS Access. I.e .: SELECT * FROM EmployeeId CROSS JOIN Период Для этого я получаю «Ошибка Sytax в предложении FROM». ошибка – Ubeogesh
в целом вы столкнетесь с множеством этих «не поддерживаемых» ошибок в MS Access. Я предлагаю использовать SQLite – nawfal