|
Про агрегатные функции
|
|||
---|---|---|---|
#18+
Уважаемый ALL! Вот какие грабли: всем известна функция SUM, возвращающая сумму значений в группе. А мне нужно произведение значений. Оказывается такой функции нет!!!. UDF не получтися - 7.0 Как выкрутится, не используя курсор? Постановка проблемы прваильная, т.к. задача математически иначе в принципе не решается. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2001, 10:45 |
|
Про агрегатные функции
|
|||
---|---|---|---|
#18+
Как известно, логарифм произведения равен сумме логарифмов. Log(X*Y)=Log(X)+Log(Y) Умножить(X) -> Exp(Sum(Log(X))) Единственная проблема заключается в том, что LOG(X) определен только для X > 0. Это можно обойти, используя конструкцию case. Также мне очень интересна суть данной задачи, если это не является тайной, расскажите. С уважением, Кузьмичев.Д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2001, 19:56 |
|
Про агрегатные функции
|
|||
---|---|---|---|
#18+
Спасибо огромное Дмитрий! (кажется мне снова пора в школу) Суть задачи совсем не есть тайна. Необходимо насчитывать прибыль, полученную при продаже продукции, опираясь на себестоимость и цену реализации. Кроме того существует несколько факторов, влияющих на себестоимость в процессе от преобретения до реализации, выраженных в процентах: процент банковского кредита и несколько других. Естно во времени эти факторы изменяются (для чего есть отдельные справочники) т.е. получаем 'процент на процент'. Чем больше продукция лежит, тем выше ее себестоимость для оправдания всех связанных с ней затрат. Решаю я эту задачу так: выбираю интересующую группу или отдельную (или всю) продукцию с датами прихода и расхода, себестоимостью и отпускной ценой и перемножаю на таблицы - справочники, отбирая по датам необходимые коэффициенты. Остается только 'взвесить' их по длительности действия и перемножить с себестоимостью. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2001, 05:32 |
|
Про агрегатные функции
|
|||
---|---|---|---|
#18+
А еще можно использовать курсор в хранимой процедуре. В цикле пробежаться по всем хаписям - и все их перемножить. Правда, работает это гшораздо медленнее, нежели использование агрегатных функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2001, 22:54 |
|
Про агрегатные функции
|
|||
---|---|---|---|
#18+
Hi, Garya. Вот и в этой конфе встретились... Конечно курсором медленно. Да и вопросе я оговорился что это нежелательно. А предложенный Дмитрием вариант выполняется практически 'влет'. Для сравненя - вариант с курсором (local, fast_forward, т.е. самый 'легкий') отрабатывает в моем случае минуты 2-3 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2001, 05:33 |
|
|
start [/forum/topic.php?fid=46&msg=32001851&tid=1827421]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 406ms |
0 / 0 |