Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Твоя задача ANSI SQL не решается. 05.05.03 14:45 Число просмотров: 1199
Автор: PS <PS> Статус: Elderman
|
Формализованно звучит так:
Есть одномерный массив [N]. Необходимо создать двумерный массив [M,K], такой, что ( (Ki - Mi) > 20 ) AND Ki > M(i-1), где M и K принадлежат N.
В условии появились индексы i, i-1 - отсюда, задача с помощью ANSI SQL не решается.
Во первых, SQL ничего не знает о порядке следования записей. next, prev, first, last - это все термины курсоров (см. PL/SQL, MSSQL, ODBC, OLEDB, CRecordset, etc. )
Во вторых, SQL не имеет механизма "памяти", поэтому указать в условии выборки Ki > M(i-1) - невозможно.
Пиши процедуры, либо хранимые на сервере, либо клиентские.
P.S. хотя давненько за сиквел не держался, так что если "старшие" товарищи докажут, что задача решаема - с удовольствием почитаю.
> Есть таблица: > Date_enter | Massa | Press | > 2002-08-09 13:00:00 | 10 | 0.5 | > 2002-08-09 13:00:34 | 13 | 0.1 | > 2002-08-09 13:00:45 | 9 | 0.2 | > 2002-08-09 13:01:00 | 11 | 0.9 | > 2002-08-09 13:01:13 | 18 | 0.7 | > > Нужно получить новую таблицу: > Date_Begin | Date_End | > Min_Massa | Min_Press | > 2002-08-09 13:00:00 | 2002-08-09 13:00:34 | 10 > | 0.1 | > 2002-08-09 13:00:45 | 2002-08-09 13:01:13 | 9 > | 0.2 | > > Т.е. новое начало периода времени всегда должно быть больше > предыдущего. > Существует ли какие-нибудь команды которые переключают > указатель записей в БД (типа Next, Record, как в FoxPro).
|
|
|