Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Вопрос

1 view
Skip to first unread message

S_Stepanov

unread,
Jul 30, 2006, 9:44:05 PM7/30/06
to
Hi All,

Есть например таблица
©© номер сумма
1 2 1
2 5 3
3 1 2
Можно ли оператором select подсчитать сумму и указать все номера, какие вошли
в эту сумму, или надо делать только через цикл...
типа...
номера сумма
2,5,1 6

Vladimir Maksimov

unread,
Aug 5, 2006, 12:33:35 PM8/5/06
to
Mon Jul 31 2006 05:44, S_Stepanov wrote to All:

SS> From: "S_Stepanov" <mi...@kraspost.ru>

SS> Hi All,

SS> Есть например таблица
SS> ©© номер сумма
SS> 1 2 1
SS> 2 5 3
SS> 3 1 2
SS> Можно ли оператором select подсчитать сумму и указать все номера, какие
SS> вошли в эту сумму, или надо делать только через цикл...
SS> типа...
SS> номера сумма
SS> 2,5,1 6

Как-то никто не торопится отвечать...

Через "чистый" Select-SQL этого не получишь в принципе. Все-равно, так или
иначе придется "мудрить" либо с циклами, либо с пользовательскими функциями.

Однако через пользовательские функции я бы не советовал. Имею в виду запросы
вида

SELECT MyFunc(f1) FROM MyTab

А уж MyFunc() что-то там вычисляет.

Проблема в том, что такие решения, как правило, не "прозрачные". Т.е.
требуется очень хорошо понимать принцип работы Select-SQL в данном конкретном
языке программирования и логику твоей функции. А это значит, что такие решения
крайне сложно модифицировать. Через месяц уже сам не вспомнишь что и почему ты
там понаписал...

Лучше сделай через циклы. Это будет проще как для написания, так и лдя
последующей модификации. Правда, это может оказаться довольно медленно. Hо тут
есть предмет для оптимизации. Есть способы ускорения.

S_Stepanov

unread,
Aug 6, 2006, 8:56:48 PM8/6/06
to
Спасибо, я так и подумал про ограниченность Select-SQL, ну а то что цикл будет
медленее, то это не очевидно...
VM> Через "чистый" Select-SQL этого не получишь в принципе. Все-равно, так
VM> или иначе придется "мудрить" либо с циклами, либо с пользовательскими
VM> функциями.
....
....
....
VM> Лучше сделай через циклы. Это будет проще как для написания, так и лдя
VM> последующей модификации. Правда, это может оказаться довольно медленно.
VM> Hо тут есть предмет для оптимизации. Есть способы ускорения.

0 new messages