Дано: скада система, СУБД внутренняя нестандартная, есть доступ по ODBC, в ней таблицы.
CDBPOINT - описание параметров
CDBHISTORIC - ретроспектива
CDBPOINT.id -id параметра
CDBPOINT.Fullname - имя параметра
CDBHISTORIC.id -id параметра, где CDBPOINT.id=CDBHISTORIC.id
CDBHISTORIC.time - время параметра
CDBHISTORIC.value - значение параметра
Задача: составить запрос, где из таблицы CDBHISTORIC брать параметры со всеми возможными id за определенный период, но каждый параметр должен быть представлен один раз с наиболее "свежей" датой из периода.
SELECT TOP (1500) CDBHISTORIC.value,CDBPOINT.Fullname,CDBHISTORIC.RecordTime AS '~Time'
FROM CDBHISTORIC,CDBPOINT
WHERE CDBHISTORIC.id=CDBPOINT.id
AND ('~Time'>TIMESTAMP '2018-12-03 01:00:00') AND ('~Time'<TIMESTAMP '2018-12-03 01:00:30')
Здесь она мне все выводит за 30 сек, даже если по одному параметру было скажем 10 точек, а мне надо только одну по каждому параметру, самую близкую к концу периода. Знаю, что надо использовать MAX и GROUP BY, но почему-то ошибки получаются.