К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Распределить пропорционально базе показатель в запросе без потери копеек

Гость
0 - 31.08.2015 - 20:38
Когда высчитываешь какие-либо показатели в запросах,то теряются копейки. Например за счет деления Показатель1/База*Показатель2.
Есть какой-нибудь готовый алгоритм по их вытаскиванию и дораспределению запросом же?



Гость
1 - 31.08.2015 - 22:05
0-Дебилы > Пакетный запрос дополни:
1. Сумма(БазаРаспределения) - Сумма(РезультатРаспределения)
2. Выбери запись из результата распределения с наибольшим значением показателя
3. К результату 2-го шага добавь копейки первого
4. Выбери из результата распределения все записи кроме той, что взял на втором шаге и объедини с результатом 3-го шага.
Гость
2 - 31.08.2015 - 22:16
1 Спасибо!
1-й этап сделал, а нет ли примера для 2-го шага?
Просто чтобы выбрать записи с максимальным значением показателя, я сначала делаю запрос на максимальные значения по необходимым группировкам, а потом к нему джойню сами записи. Несколько смущает ставить условия соединения по цифрам, или это нормально? Чето запутался
Гость
3 - 01.09.2015 - 02:13
(1) Reaper и те кто знает , не подскажите как сделать 2-й этап в плане запросов. А то у меня выходят соединения по цифрам, такого просто не делал доселе,но не вижу варианта, ведь вроде это сомнительная операция.
Помогите плиз, ведь мы Дебилы же:)
4 - 01.09.2015 - 09:46
Первый запрос помещаешь во временную таблицу. Второй запрос делаешь к этой таблице.
Гость
5 - 01.09.2015 - 10:15
3-Дебилы >Сортировка по убыванию, выбрать 1 строку. Элементарно же.
Гость
6 - 01.09.2015 - 12:50
(4) это понятно, вопрос как выбрать максимумы
(5) так мне надо не одну строку , а top 1 в рамках каждой группировки
Гость
7 - 01.09.2015 - 15:03
Имеется Сумма для распределения (S), И сумма показателей (долей) для распределения(P=p1+p2+p3+...).
После каждой итерации (s1=S/P*p1) уменьшаем сумму для распределения (S=S-s1) и Сумму показателей (P=P-p1).
Последнему в списке щедро отдаем весь кошелек.
Гость
8 - 01.09.2015 - 16:13
(7) запросом хочу
Гость
9 - 01.09.2015 - 16:54
8-Дебилы > Используй ТЗ как временную таблицу.
Гость
10 - 01.09.2015 - 17:18
(9) я в скд делаю, поэтому хотелось бы обойтись одними запросами.
Иначе придется выгружать результат в ТЗ, а потом опять подсовывать в скд
Гость
11 - 01.09.2015 - 17:53
ну короче сделал все, работает.
только вот соединения в запросе по числам - подозреваю, что это не очень нормально
Гость
12 - 01.09.2015 - 21:57
Добавил еще один показатель и обнаружилась лажа. В рамках группировки может быть несколько одинаковых значений и все они одинаково максимальные.Тогда он списывает дельту со всех таких строк. Т.е. критерия максимальности недостаточно, требуется выбрать еще и Первые 1 среди максимальных в каждой группе.Не пойму, как это реализовать?
Дайте плиз пример запросов лучше, может в типовой где-то есть такое?
Гость
13 - 01.09.2015 - 22:47
12-Дебилы > Либо делай нумерацию для предварительного результата распределения, либо бей СКД на 2 набора данных так, чтобы ведущий собрал список группировок и суммы к распределению, а ведомый делал распределение в рамках одной группировки.
Гость
14 - 02.09.2015 - 22:15
короче кинул на Максимум(Показатель), где показатель - объект справочник ссылка.Тем самым получился какбе Top 1 в рамках группировки


К списку вопросов
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск




Copyright ©, Все права защищены