|
Как такое можно сделать запросом?
MWWRuza, Crusher, VKS, d_Fyodor, DeeK, Галахад, lucky_, RVN, toypaul, mortal, Garykom, , , , 1Сергей, zippygrill, serpentt, U4Me2, Fedor-1971, XLife, Ёпрст, Бычье сердце, Мультук, 2S, patapum, H A D G E H O G s, kir-g, El_Duke, Злопчинский, alex73, _Batoo, Волшебник, vyaz, DimR_71, Dmitrii, mmg, saaken, eRik, abfm, Андрюха, lubitelxml, ldo6, takefive, sikuda, Прохожий, Stepashkin, Domovoi, , NorthWind, Prog_man, hunter76, бегинер, yanikolay, denk32, Silgis, who respawn, ЕRPe, Ногаминебить, vladko, Anton1307, KJlag, Sserj, Builder, Кукуев, Amra, MichmaN, Shurjk, nick86, dva1c, nemo1966
| ☑ |
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) Что-то типа такого
ВЫБОР
КОГДА КоличествоЯблок <= 100 ТОГДА КоличествоЯблок * 1
КОГДА КоличествоЯблок <= 150 ТОГДА 100 * 1 + (КоличествоЯблок - 100) * 2
КОГДА КоличествоЯблок <= 200 ТОГДА 100 * 1 + 50 * 2 + (КоличествоЯблок - 150) * 3
КОГДА КоличествоЯблок <= 250 ТОГДА 100 * 1 + 50 * 2 + 50 * 3 + (КоличествоЯблок - 200) * 4
КОГДА КоличествоЯблок > 250 ТОГДА 100 * 1 + 50 * 2 + 50 * 3 + 50 * 4 + (КоличествоЯблок - 250) * 5
ИНАЧЕ 0
КОНЕЦ КАК Итог
|
|
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
|
Идея понятна, всем спасибо
|
|