![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 и буфферные переменные.