Вниз
Скачать: CL | DM;

Исключение MAX()   Найти похожие ветки 

← →
rava ©   (2003-09-15 16:49) [0]

Есть SP, в нем:

Select Max(KOD) From Saldo
Where saldo.NCH = :iNch And saldo.DPLT <= :iDPlt
Order By KOD Desc
Into :MaxKey;

Как в запросе получить значение первой записи, т.е. я хочу
исключить использования функции MAX(), т.к. первая запись и есть
максимальная значение которая мне нужна. Спасибо всем.


← →
Johnmen ©   (2003-09-15 17:12) [1]

FOR
Select KOD From Saldo
Where saldo.NCH = :iNch And saldo.DPLT <= :iDPlt
Order By KOD Desc
Into :MaxKey
DO BEGIN;
SUSPEND; EXIT;
END


← →
vopros ©   (2003-09-15 17:16) [2]

first-наверное поможет


← →
Sandman25 ©   (2003-09-15 17:20) [3]

А вообще зачем избавляться от MAX? Без него любая конструкция будет выполняться дольше. Сортировка - дорогая операция.


← →
Johnmen ©   (2003-09-15 17:46) [4]

>Sandman25 © (15.09.03 17:20)

"Вот ымэнно, вот ымэнно !" (c) Хрюн Моржов
:)))


← →
Rava ©   (2003-09-15 17:47) [5]

Johnmenu - спасибо за простое решение проблемы.
VOPROS - как использовать first, никогда непользовалься.
Sandman25 - По моим экспериментам MAX() выполняется дольше при увеличении кол-во записей в таблице SALDO.


← →
Johnmen ©   (2003-09-15 17:51) [6]

>Rava © (15.09.03 17:47)

По идее MAX() должен отрабатывать практически мгновенно, если по полю KOD есть индекс.


← →
Sandman25 ©   (2003-09-15 17:55) [7]

Даже если нет индекса, то select max не может выполняться медленнее, чем select order by.
Вот если Вы сравнивали select max с простым select ( без order by), тогда, конечно, может и медленнее.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-18303
Delphi5.01
2003-09-21 20:28
2003.10.06
Kak vozmojno ubit potok v kotorom bezkanechni cikl?


3-18230
MonsterKot
2003-09-16 07:47
2003.10.06
Такая вот загадка про DBGRID


14-18623
Феликс
2003-09-18 22:05
2003.10.06
Реклама


3-18217
WellSlava
2003-09-17 17:22
2003.10.06
ODBC+DBF


14-18606
Е-Моё имя
2003-09-16 14:32
2003.10.06
Именинники 16 сентября




   Наверх