|
Как такое можно сделать запросом? | ☑ | ||
---|---|---|---|---|
0
VKS
27.03.25
✎
12:35
|
Добрый день. Подскажите, пожалуйста, как такой код можно сделать запросом?
Итого = 0; Для Сч = 1 По 1000 Цикл Если Сч <= 100 Тогда Сумма = 1; ИначеЕсли Сч <= 150 Тогда Сумма = 2; ИначеЕсли Сч <= 200 Тогда Сумма = 3; ИначеЕсли Сч <= 250 Тогда Сумма = 4; ИначеЕсли Сч >= 251 Тогда Сумма = 5; КонецЕсли; Итого = Итого + Сумма; КонецЦикла; Сообщить(Итого); |
|||
1
Волшебник
27.03.25
✎
12:39
|
зачем?
|
|||
2
Stepashkin
27.03.25
✎
12:40
|
(1) Такой же вопрос.
|
|||
3
2S
27.03.25
✎
12:41
|
Загнать в ВТ от 1 до 1000
Потом выборка из ВТ через "Выбора когда" и просуммировать. |
|||
4
VKS
27.03.25
✎
12:42
|
Есть практическая задача, в которой все считается в запросе, кроме одного показателя, который рассчитывается по этому алгоритму. Не могу понять как его тоже засунуть в расчет, чтобы дальше уже рассчитанный показатель использовать в запросе
|
|||
5
KJlag
27.03.25
✎
12:47
|
*нет, ступил. можно удалить сообщение
|
|||
6
VKS
27.03.25
✎
12:47
|
Условно, у меня в запросе есть поле, которое показывает, к примеру 350. Пусть будет 350 яблок. За первые 100 собранных яблок я получил по 1 рублю за сборку. За яблоки с 101 по 150 я получаю по 2 рубля за сборку и т.д. Максимально начиная с 251 яблока я получаю по 5 рублей за каждое собранное яблоко.
Так я получил сумму за собранные яблоки. Дальше эта сумма в запросе считается по другим фруктам и овощам и в конце я прихожу к какой-то итоговой сумме |
|||
7
1Сергей
27.03.25
✎
12:47
|
ВЫБРАТЬ
4300 КАК Итог |
|||
8
toypaul
гуру
27.03.25
✎
12:53
|
100 * 1 + 50 * 2 + 50 * 3 + 50 * 4 + (N - 250) * 5
|
|||
9
Garykom
гуру
27.03.25
✎
13:05
|
(6) Можно но сложно
Извращение будет еще то и не гибкое Лучше отдельно кодом рассчитать таблицу коэффициентов Засунуть ее как ВТ в запрос и соединять Фактически тебе для некоего числа надо вычислить функцию от этого числа Т.к. функция интервальная то можно подготовить таблицу параметров для использования: 1|100|1 101|150|2 ... 251|NULL|5 Затем соединяешь хитрым образом (выбор когда.. тогда..) по условиям, получая в несколько колонок последовательно нужные цифры Например для 350: 350|100*1|50*2|...|(350-250) * 5 Ну и в конце просуммировать |
|||
10
Dmitrii
гуру
27.03.25
✎
13:08
|
(6) Что-то типа такого
|
|||
11
Garykom
гуру
27.03.25
✎
13:09
|
(9)+ Если числа условно "небольшие"
То можно как ВТ передавать (или даже хранить в базе) уже полностью рассчитанную таблицу 1 - 1 2 - 2 3 - 3 ... 100 - 100 101 - 102 102 - 104 ... тогда банальное соединение даст искомое число но табличка может быть великовата как и долгий ее расчет - заполнение |
|||
12
Garykom
гуру
27.03.25
✎
13:10
|
(10) Совершенно негибко
Параметры расчета хранить внутри запросов изврат Конечно может быть выходом текст запроса кодом формировать |
|||
13
Garykom
гуру
27.03.25
✎
13:11
|
(12)+ Если кол-во скачков (добавляемых колонок) заранее известно проще (9)
А сами пороги (от/до) и коэффициенты могут легко меняться и браться из ВТ |
|||
14
Мультук
гуру
27.03.25
✎
13:12
|
(12)
Имхо, интервальная таблиц плюс код, который будет автоматом по этой таблице генерировать текст запроса из (10) P.S. Пока писал, все всё уже посоветовали :-( |
|||
15
VKS
27.03.25
✎
14:47
|
Идея понятна, всем спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |