powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / быстрый запрос
3 сообщений из 3, страница 1 из 1
быстрый запрос
    #32433537
leonbn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!
Есть три таблицы. Имеем запрос:
select a.dt, coalesce(b.prih, 0) as prih,
(select first 1 coalesce(c.ost, 0)
from statost c
where c.data <= a.dt and c.tid = xxxx
order by c.data desc) as ost
from (ar_dt a left join statprih b
on a.dt = b.data and b.tovid = xxxx)

В a находятся даты (идут подряд с Д1 по Д2) по которым делается выборка.
В b находятся приходы (был Дn приход – есть запись, не было – нет).
В c находится статистика остатков, причем для экономии остаток заносится, только если он отличается от предыдущего.
Если запрос писать с двумя join’ами может получиться следующая таблица:
Dt prih ost
14.02.2004 0 100
15.02.2004 10 80
16.02.2004 0 90
17.02.2004 0 null
18.02.2004 0 80
Надо, чтобы в таком случае вмесио null подставлялся предыдущий остаток
Запрос с двумя join’ами выполняется ~0 ms, а полный – ~16 ms. Выборки идут по группам от 1000 до 10000 товаров, т.е. получается 16 – 160 сек., что очень много. Реально ли оптимизировать такой запрос?
FB1.5
Спасибо.
...
Рейтинг: 0 / 0
быстрый запрос
    #32433804
Фотография Johnmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Ты не умничай, ты рукой покажи..." (c) известный анекдот

...
Рейтинг: 0 / 0
быстрый запрос
    #32434181
Фотография Dnico
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй ХП и получишь то что нужно и быстро ...

Best regards,
Dnico.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / быстрый запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]