powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Про агрегатные функции
5 сообщений из 5, страница 1 из 1
Про агрегатные функции
    #32001744
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемый ALL! Вот какие грабли: всем известна функция SUM, возвращающая сумму значений в группе. А мне нужно произведение значений. Оказывается такой функции нет!!!. UDF не получтися - 7.0 Как выкрутится, не используя курсор? Постановка проблемы прваильная, т.к. задача математически иначе в принципе не решается.
...
Рейтинг: 0 / 0
Про агрегатные функции
    #32001753
Как известно, логарифм произведения равен сумме логарифмов.
Log(X*Y)=Log(X)+Log(Y)
Умножить(X) -> Exp(Sum(Log(X)))
Единственная проблема заключается в том, что LOG(X) определен только для X > 0.
Это можно обойти, используя конструкцию case.

Также мне очень интересна суть данной задачи, если это не является тайной, расскажите.

С уважением, Кузьмичев.Д.
...
Рейтинг: 0 / 0
Про агрегатные функции
    #32001761
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное Дмитрий! (кажется мне снова пора в школу)
Суть задачи совсем не есть тайна. Необходимо насчитывать прибыль, полученную при продаже продукции, опираясь на себестоимость и цену реализации. Кроме того существует несколько факторов, влияющих на себестоимость в процессе от преобретения до реализации, выраженных в процентах: процент банковского кредита и несколько других. Естно во времени эти факторы изменяются (для чего есть отдельные справочники) т.е. получаем 'процент на процент'. Чем больше продукция лежит, тем выше ее себестоимость для оправдания всех связанных с ней затрат. Решаю я эту задачу так: выбираю интересующую группу или отдельную (или всю) продукцию с датами прихода и расхода, себестоимостью и отпускной ценой и перемножаю на таблицы - справочники, отбирая по датам необходимые коэффициенты. Остается только 'взвесить' их по длительности действия и перемножить с себестоимостью.
...
Рейтинг: 0 / 0
Про агрегатные функции
    #32001851
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще можно использовать курсор в хранимой процедуре. В цикле пробежаться по всем хаписям - и все их перемножить. Правда, работает это гшораздо медленнее, нежели использование агрегатных функций.
...
Рейтинг: 0 / 0
Про агрегатные функции
    #32001852
Павел
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi, Garya. Вот и в этой конфе встретились... Конечно курсором медленно. Да и вопросе я оговорился что это нежелательно. А предложенный Дмитрием вариант выполняется практически 'влет'. Для сравненя - вариант с курсором (local, fast_forward, т.е. самый 'легкий') отрабатывает в моем случае минуты 2-3
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Про агрегатные функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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