Я пытаюсь сделать запрос в Access, который выбирает максимальную дату из таблицы, которая меньше, чем дата конкретной другой записи в таблице, и я должен проверить, существует ли эта запись.
Я знаю, что описание немного сбивает с толку, поэтому я попытаюсь объяснить его в псевдокоде:
If(Record exists where editing_type = "Notranja kontrola")
SELECT MAX(created_at) that is smaller than ( MIN(created_at) Where
editing_type = "Notranja kontrola")
WHERE editing_type = "Zajem"
Если запись с edit_type = "Notranja kontrola" не существует, Я не хочу выбирать дату. Я хочу вернуть NULL.
Если это так, я хочу выбрать максимальную дату, где edit_type = "Zajem", то есть меньше, чем MIN (дата), ГДЕ edit_type = "Notranja kontrola")
Запрос, который я предложил:
SELECT
spr.ob_id AS Obcina,
spr.ko,
'DA' AS Dodeljeno,
(
SELECT MAX(created_at)
FROM (
SELECT created_at
FROM spremljanje_uporabnik_zajem
WHERE created_at < (
SELECT MIN(created_at)
FROM spremljanje_uporabnik_zajem
WHERE editing_type = "Notranja kontrola" AND ko = spr.ko AND VAL(ko) BETWEEN 0 AND 9999
)
)
WHERE editing_type = "zajem" AND ko = spr.ko AND VAL(ko) BETWEEN 0 AND 9999
AND EXISTS (
SELECT 1
FROM spremljanje_uporabnik_zajem
WHERE editing_type = "Notranja kontrola" AND ko = spr.ko AND VAL(ko) BETWEEN 0 AND 9999
)
) AS [krneki],
(SELECT
.....
)
FROM spremljanje_uporabnik_zajem AS spr
WHERE VAL(ko) BETWEEN 0 AND 9999
GROUP BY spr.ob_id, spr.ko
ORDER BY Val(spr.ko);
часть WHERE VAL(ko) BETWEEN 0 AND 9999
предназначена только для проверки правильности записи.
Когда я пытаюсь выполнить запрос, я получаю приглашение ввести spr.ko вместо того, чтобы принимать его как значение из внешнего запроса.
Как мне это исправить?
Внешний запрос существует, потому что мне нужно выбрать и другие вещи.
РЕДАКТИРОВАТЬ + РЕДАКТИРОВАТЬ2:
Я только выбираю из таблицы "spremlanje_uporabniki_zajem"
Пример данных (spremlanje_uporabniki_zajem):
ob_id ko editing_type created_at
40 100 zajem 1.01.2018
40 100 zajem 2.01.2018
40 100 notranja kontrola 3.01.2018
40 100 zajem 4.01.2018
90 550 zajem 2.01.2018
40 100 zajem 6.01.2018
40 20 zajem 7.01.2018
40 20 zajem 8.01.2018
40 20 notranja kontrola 9.01.2018
40 20 zajem 10.01.2018
40 100 zajem 11.01.2018
40 20 zajem 12.01.2018
40 20 notranja kontrola 13.01.2018
40 100 notranja kontrola 13.01.2018
Expected REXPECTED RESULT:
ob_id ko Dodeljeno krneki
40 100 DA 2.01.2018
90 550 DA NULL
40 20 DA 8.01.2018
Спасибо