Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Функция
|
|||
|---|---|---|---|
|
#18+
Необходимо получить одну строку, получается много. что я делаю не так? database rt_data; create function get_lost_uuu(u_num_cnt char(20), u_dat_uchet date) returning float; DEFINE u_volumeN float; DEFINE u_volumeB float; define u_tempn, u_tempb, u_monthn, u_monthb integer; let u_volumeN=0; let u_volumeB=0; let u_monthN=0; let u_monthB=0; let u_tempN=0; let u_tempB=0; set explain on; --- выборка последней записи foreach select first 1 nzp_cr, month(dat_uchet), val_cnt into u_tempN, u_monthN, u_volumeN from counters where is_actual=1 and num_cnt=u_num_cnt and dat_uchet>=u_dat_uchet order by nzp_cr desc EXIT FOREACH; END FOREACH; --- выборка предпоследней записи foreach select first 1 nzp_cr, month(dat_uchet), val_cnt into u_tempB, u_monthB, u_volumeB from counters where is_actual=1 and num_cnt=u_num_cnt and dat_uchet<u_dat_uchet order by nzp_cr desc EXIT FOREACH; END FOREACH; --- подсчет расхода за месяц let u_volumeN=(u_volumeN-u_volumeB)/(u_monthN-u_monthB); set explain off; return u_volumeN; end function document "usage: temp:\" with listing in 'arht'; --- grant execute on get_lost_uuu to "public" as "are"; --- select 1, get_lost_uuu("29","01.05.2004") from counters; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 16:36 |
|
||
|
Функция
|
|||
|---|---|---|---|
|
#18+
Если речь о "select 1, get_lost_uuu("29","01.05.2004") from counters" то строк вернется столько, сколько строк в counters. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 16:43 |
|
||
|
Функция
|
|||
|---|---|---|---|
|
#18+
почему? и как сделать правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 16:50 |
|
||
|
Функция
|
|||
|---|---|---|---|
|
#18+
Как почему? Функция здесь совсем не причем, в первую очередь ты делаеш select из таблицы, а уже во вторую для каждой записи, возвращаемой select-ом, выполняется функция. Если необходима гарантирована одна запись, то используют select заведомо возвращающий ровно одну запись, например select 1, get_lost_uuu("29","01.05.2004") from systables where tabid=1 systables взят, как таблица заведомо находящаяся в памяти и не требующая доп.расходов на IO. В 9-ке сие можно реализовать через set {} Select 1, get_lost_uuu("29","01.05.2004") from table(set{1}) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2004, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=44&fpage=66&tid=1609285]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 169ms |

| 0 / 0 |
