Это мой первый пост здесь и первая проблема, которую я не смог найти самостоятельно. У меня есть MainTable, содержащий поля: Date, MinutesActiveWork (и другие не относящиеся к делу поля). У меня есть вторая таблица, содержащая поля: ID, id_Workarea, GoalOfActiveMinutes, GoalActiveFrom.
Я хочу сделать запрос, который возвращает все записи из MainTable и активную цель на дату. Пример:
Maintable (Date = dd/mm/yyyy)
ID Date ActvWrkMin WrkAreaID
1 01-01-2019 45 1
2 02-01-2019 50 1
3 03-01-2019 48 1
GoalTable:
ID id_Workarea Goal GlActvFrm
1 1 45 01-01-2019
2 2 90 01-01-2019
3 1 50 03-01-2019
What i want from my query:
IDMain Date ActvWrkMin Goal WrkAreaID
1 01-01-2019 45 45 1
2 02-01-2019 50 45 1
3 03-01-2019 48 50 1
Запрос, который у меня есть сейчас, действительно близок к тому, что я хочу. Но проблема в том, что запрос выводит все цели, которые меньше даты из MainTable (понятно почему, но я не знаю, какие критерии ввести, чтобы исправить это). Примерно так:
IDMain Date ActvWrkMin Goal WrkAreaID
1 01-01-2019 45 45 1
2 02-01-2019 50 45 1
3 03-01-2019 48 45 1 <-- Dont want this one
3 03-01-2019 48 50 1
Мой запрос
SELECT tblMain.Date, tblMain.ActiveWorkMins, tblGoal.Goal
FROM VtblSumpMain AS tblMain LEFT JOIN (
SELECT VtblGoalsForWorkareas.idWorkArea, VtblGoalsForWorkareas.Goal, VtblGoalsForWorkareas.GoalActiveFrom (THIS IS THE DATE FIELD)
FROM VtblGoalsForWorkareas
WHERE VtblGoalsForWorkareas.idWorkArea= 1) AS tblGoal ON tblMain.Date > tblGoal.GoalActiveFrom
ORDER BY tblMain.Date
(я знаю, что могу сделать это довольно просто с помощью Dlookup, но этого недостаточно быстро)
Спасибо за любой совет!