Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

SQL отнимающий содержимое одной строки от другой [D6, Win2k]


DelphiN! ©   (2005-06-16 14:37:00) 

Можно ли написать SQL запрос отнимающий содержимое одной строки от другой и прибавляющий разницу к какой либо переменной, для дальнейшего вывода суммы разниц

Тоесть есть таблица

Value1     03.02.05 23:00:01
Value2     03.02.05 24:00:01
Value4     04.02.05 03:30:00
Value3     04.02.05 01:27:00
Value4     04.02.05 07:00:00
.......           ..............

Так вот мне нужно узнать какая разница во времени(в часах) скажем от Value1 до Value2, а потом вывести эту разницу для каждого значения, возможно ли это на SQL, ото вручную перебирать ну очень уж долго


Johnmen   (2005-06-16 15:39:00) [1]

>P.N.P. ©   (16.06.05 14:58) [7]

Модуль можно и без УДФ выделить.


Anatoly Podgoretsky   (2005-06-16 15:01:00) [2]

Кстати это Value2     03.02.05 24:00:01 не допустимая дата, должно было серьезно обматюгать


Digitman   (2005-06-16 14:58:00) [3]


> Можно ли написать SQL запрос


можно.

на PSQL пишется сначала ХП, в которой это запросто делается, а уж затем на DSQL пишется запрос (с использованием этой уже готовой ХП), получающий готовые данные


P.N.P.   (2005-06-16 14:58:00) [4]

Можно примерно так извратиться:

select
n.id,
n.date_time-(select nn.date_time from table nn where nn.id=n.id-1)
from table n where mod(n.id,2)=0

Здесь mod() - из UDF Rfunc


DelphiN!   (2005-06-16 14:48:00) [5]

СУБД FireBird 1.5


Anatoly Podgoretsky   (2005-06-16 14:46:00) [6]

SQL запрос в каждой момент времени оперирует только одной строкой.


evvcom   (2005-06-16 14:46:00) [7]

Где-то можно, где-то нельзя... Ты бы хоть СУБД указал.


DelphiN!   (2005-06-16 14:45:00) [8]

Я делаю так своей процедурой, но очень все долго вычисляется(база большая)


Дельфин   (2005-06-16 14:41:00) [9]

Нельзя.
Процедурой можно через FOR SELECT и буфферные переменные.


Наверх

Титульная страница Поиск, карта сайта Написать письмо