powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом
25 сообщений из 64, страница 1 из 3
Помогите с запросом
    #38461805
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

есть таблица1 вида:

ID Name
1 AAA
2 BBB
3 CCC
....
это номенклатура: ID - номер товара, Name - название

и таблица2 вида:

PRODUCT_ID DATA ST CLV
1 01.01.2013 1 5
1 02.01.2013 -1 1
1 03.01.2013 -1 2
2 02.01.2013 1 3
3 02.01.2013 1 10
1 05.01.2013 -1 1
2 05.01.2013 -1 1
3 06.01.2013 -1 2
....
это журнал покупок и продаж где PRODUCT_ID - номер товара из таблицы1, ST = 1-покупка, =-1-продажа
CLV - количество

Вопрос в том как наиболее оптимально построить запрос об остатках
спасибо
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461817
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лабораторная работа №3
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461831
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понятно, что GROUP BY, но как объяснить что процедура типа

for select * from table1
..
do
begin
select sum(clv*st) from table2
end

работает гораздо быстрее?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461836
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тебе не верю
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461842
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мамой клянусь
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461843
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SLebedevкак наиболее оптимально построить запрос об остатках

Чем тебе обычный sum(st*clv) неоптимален?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461845
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийлабораторная работа №5
....
лабораторная работа №3


зачётная неделя что ли началась?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461849
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,

надо ещё название из первой таблицы подлить
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461851
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Симонов Денис!
You wrote on 12 ноября 2013 г. 14:19:50:

Симонов Денис> зачётная неделя что ли началась?
близится.
студиозы начали выпадать в реал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461856
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос не в синтаксисе запроса, а в том что, IMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее агрегатных функций
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461860
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SLebedevнадо ещё название из первой таблицы подлить
И чо? В чём проблема-то? join+group by. Показывай запрос, его план и статистику выполнения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461862
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, SLebedev!
You wrote on 12 ноября 2013 г. 14:24:32:

SLebedev> IMHO, процедуры тупого перебора по ключевому
> полю работают гораздо быстрее агрегатных функций врёшь

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461865
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SLebedevIMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее
агрегатных функций
А доказать это цифрами той же статистики слабо?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461868
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,
и чем больше записей в таблице, тем сильнее разница по времени, нелинейно
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461871
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

Ага... Щас ТС скажет, что миллионы записей - это фантастика ;)
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461875
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SLebedevВопрос не в синтаксисе запроса, а в том что, IMHO, процедуры тупого перебора по ключевому полю работают гораздо быстрее агрегатных функций

для твоих объёмов данных пофиг.
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461880
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
щас попробую
тебе какие цифры? время исполнения запроса и процедуры? или анализ производительности?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461884
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
откуда тебе знать про мои объёмы? Я привёл упрощённый пример
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461886
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SLebedev,

и тексты запросов и хп не забудь полные, а то пока какие-то псевдокоды видим
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461906
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
значит анализируем запрос типа

select b.name,sum(a.colvo*a.clv)
from table2 a,table2 b
where a.product_id=b.id
group by 1

так?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461909
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

извиняюсь

select b.name,sum(a.clv*a.st)
from table2 a,table2 b
where a.product_id=b.id
group by 1
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461914
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

снова извиняюсь

select b.name,sum(a.clv*a.st)
from table2 a,table1 b
where a.product_id=b.id
group by 1
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461920
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и сюда же до кучи PLAN SORT

и для сравнения - процедура с фетчем ОДНОЙ записи.

чЮдненько.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461938
SLebedev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
запрос этот оставим или перестроим? может join добавим?
...
Рейтинг: 0 / 0
Помогите с запросом
    #38461952
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пцнт упрт
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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