Я хочу узнать минимальное и максимальное значение в разных условиях.Я хочу узнать максимальное значение только тогда, когда минимальное значение равно нулю.
Помните, что lc_cont_yymm является переменной, а isMaxRequired, pc_cont_no, ld_Today являются параметрами в функции.Таблица сотрудников - 2125244 строки.основной индекс включен - Cont_no, cont_yymm
SELECT MIN(cont_yymm) INTO lc_cont_yymm
FROM Employees
WHERE cont_no = pc_cont_no
AND ld_Today BETWEEN eff_date AND term_date;
IF lc_cont_yymm IS NULL THEN
IF isMaxRequired THEN
SELECT MAX(cont_yymm) INTO lc_cont_yymm
FROM Employees
WHERE cont_no = pc_cont_no
AND ld_Today > term_date;
IF lc_cont_yymm IS NULL THEN
RETURN '-2';
END IF;
ELSE
RETURN '-2';
END IF;
END IF;
RETURN lc_cont_yymm;
Этот запрос занимает много времени при многократном вызове для for..loops.Еще больше времени, когда минимальное значение равно нулю и попробуйте найти максимальное значение.Я хочу оптимизировать в лучшую сторону.Пожалуйста, помогите в этом?