Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Вниз

SQL 


kd   (2001-12-10 08:03) [0]

Времени сутов всем
Поможите люди добрые кто чем может Проблема в следующем:Делаю запрос
SELECT поле1, sum(поле2)
FROM "Table.DBF"
WHERE поле1 BETWEEN :Param1 AND :Pаram2
GROUP BY поле1
ORDER BY поле1
где параметры-даты начала и конца выборки по полю "поле1"
И из полученного запроса мне надо выбрать максимум из Sum(поле2)
для чего вешаю на событие AfterOpen обработчик
S:=0;
Beep;
Query1.First;
While not Query1.Eof Do
Begin
If s<Query1.FieldByName("SUM OF SP428").AsFloat Then s:=Query1.FieldByName("SUM OF SP428").AsFloat;
Query1.Next;
Всё работает но нельзя ли всё сделать в одном запросе и не писать перебор While not Query1.Eof...
Посоветуйте пожайлуста



Alex Y   (2001-12-10 09:11) [1]

А SELECT поле1, MAX(sum(поле2)) ... не пробовал?



Boo   (2001-12-10 09:14) [2]

<Alex Y> не протянет...



Boo   (2001-12-10 09:16) [3]

<kd> пока попробуй
SELECT поле1, sum(поле2)
FROM "Table.DBF"
WHERE поле1 BETWEEN :Param1 AND :Pаram2
GROUP BY поле1
ORDER BY sum(поле2) DESC
Если DESC пройдет (обратная сортировка), то бери первую запись, если не пройдет, то последнюю



Alex Y   (2001-12-10 09:57) [4]

Boo можно и тек, только Вместо
ORDER BY sum(поле2) DESC лучше
ORDER BY 2 DESC или ORDER BY Col2 DESC (точно не помню как в BDE)




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.10;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.01 c
6-28521           Serguar               2001-10-10 12:42  2002.01.10  
Вопрос по TUDPServer/TUDPClient из Indy


6-28524           Алексей Штыков        2001-10-16 14:38  2002.01.10  
Как втихую проверить обновления (любые) с сервера.?


1-28466           GorA                  2001-12-21 15:18  2002.01.10  
T(Rx)RichEdit


1-28510           USAtyj                2001-12-21 12:56  2002.01.10  
AV при вызове HeapAlloc


6-28517           CraSci                2001-10-16 15:18  2002.01.10  
Upload файлов через веб-интерфейс.