|
Как добавить или отнять число от максимального значение в запросе | ☑ | ||
---|---|---|---|---|
0
ColonelAp4u
11.06.19
✎
11:54
|
Добрый день уважаемые форумчане, делаю запрос в РС Распределение заработка сотрудников, суть получить % по каждому способу отражения затрат для каждого подразделения. В результате запроса у меня у большинства подразделений итог собирается 100% но есть случаи когда 101 и есть когда 99, так вот нужно к максимальному % в группировке добавить или отнять любую цифру что бы получилось 100%.
ВЫБРАТЬ РаспределениеЗаработкаРаботников.ПериодРегистрации, СУММА(РаспределениеЗаработкаРаботников.ДоляСпособаОтражения) КАК ОсновнаяДоля, СотрудникиОрганизаций.ПодразделениеОрганизации КАК Подразделение ПОМЕСТИТЬ ОбщаяДоля ИЗ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаспределениеЗаработкаРаботников КАК РаспределениеЗаработкаРаботников ПО СотрудникиОрганизаций.Физлицо = РаспределениеЗаработкаРаботников.Физлицо ГДЕ РаспределениеЗаработкаРаботников.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода СГРУППИРОВАТЬ ПО РаспределениеЗаработкаРаботников.ПериодРегистрации, СотрудникиОрганизаций.ПодразделениеОрганизации ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РаспределениеЗаработкаРаботников.СпособОтраженияВУпрУчете КАК СпособОтражения, СУММА(РаспределениеЗаработкаРаботников.ДоляСпособаОтражения) КАК ДоляРаспределения, РаспределениеЗаработкаРаботников.ПериодРегистрации, СотрудникиОрганизаций.ПодразделениеОрганизации КАК Подразделение ПОМЕСТИТЬ ОбщаяПоСпособам ИЗ Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаспределениеЗаработкаРаботников КАК РаспределениеЗаработкаРаботников ПО СотрудникиОрганизаций.Физлицо = РаспределениеЗаработкаРаботников.Физлицо ГДЕ РаспределениеЗаработкаРаботников.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода СГРУППИРОВАТЬ ПО РаспределениеЗаработкаРаботников.СпособОтраженияВУпрУчете, РаспределениеЗаработкаРаботников.ПериодРегистрации, СотрудникиОрганизаций.ПодразделениеОрганизации ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ОбщаяДоля.Подразделение КАК Подразделение, ОбщаяПоСпособам.СпособОтражения, СУММА(ВЫРАЗИТЬ(ОбщаяПоСпособам.ДоляРаспределения * 100 / ОбщаяДоля.ОсновнаяДоля КАК ЧИСЛО(3, 0))) КАК ДоляРаспределенияЗатрат ИЗ ОбщаяДоля КАК ОбщаяДоля ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОбщаяПоСпособам КАК ОбщаяПоСпособам ПО ОбщаяДоля.ПериодРегистрации = ОбщаяПоСпособам.ПериодРегистрации И ОбщаяДоля.Подразделение = ОбщаяПоСпособам.Подразделение СГРУППИРОВАТЬ ПО ОбщаяДоля.Подразделение, ОбщаяПоСпособам.СпособОтражения УПОРЯДОЧИТЬ ПО ОбщаяДоля.Подразделение.Наименование ИТОГИ ПО Подразделение |
|||
1
Cyberhawk
11.06.19
✎
12:02
|
С таким подходом к выражению мыслей далеко не уедешь
|
|||
2
mikecool
11.06.19
✎
12:04
|
(0) правильное максимальное значение - 146%
|
|||
3
ColonelAp4u
11.06.19
✎
12:36
|
(1) в чем мысль то не понятная?
|
|||
4
mistеr
11.06.19
✎
12:37
|
(0) Распределение нужно делать в коде, а не в запросе. Для этого есть стандартный метод РаспределитьПропорционально(), забыл в каком модуле.
|
|||
5
Cyberhawk
11.06.19
✎
12:38
|
(3) Какая?
|
|||
6
pasha_d
11.06.19
✎
13:43
|
(4) ОбщегоНазначения.РаспределитьПропорционально()
Там три параметра, возвращает массив по-моему. Иногда пользуюсь. |
|||
7
RomanYS
11.06.19
✎
13:46
|
(0) А если кто-то вместо процентов введет долю от целого, в сумме будет 1.00. Ты ещё 99 на большего накинешь?
|
|||
8
АнализДанных
11.06.19
✎
13:51
|
(0) Если я правильно понял, то в запросе можно написать так:
Выбор когда ТвойПоказатель>100 тогда 100 Иначе ТвойПоказатель Конец |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |