|
Распределить по количеству в запросе | ☑ | ||
---|---|---|---|---|
0
location
naïve
23.05.22
✎
14:54
|
Добрый день.
Подскажите пож-та, можно ли как то распределить позиции по количеству в запросе, например по 100, но если количество самой позиции больше 100 она должна войти в отдельное собрание Например Номенклатура1 50 Номенклатура2 50 Номенулатура3 120 Номенклатура4 70 Номенклатура5 110 в итоге должно выйти так Номенклатура1 50 сбор1 Номенклатура2 50 сбор1 Номенклатура3 120 сбор2 Номенклатура4 70 сбор3 Номенклатура5 110 сбор4 |
|||
1
Ryzeman
23.05.22
✎
14:58
|
ВЫБОР КОГДА КОЛИЧЕСТВО(ТвояТаблица.Номенклатура) > 100 ТОГДА "сбор2" ИНАЧЕ "сбор1" КОНЕЦ КАК Сбор? Какой бы ты смысл в это слово ни вкладывал, а потом уже разделяй как хочешь
|
|||
2
RomanYS
23.05.22
✎
15:00
|
(0) в теории можно. На практитке в этом нет смысла.
Немного похожая тема по идеям: Помогите с запросом |
|||
3
lodger
23.05.22
✎
15:08
|
смотри какую наркоманию я изобрел.
может наведет на мысль ВЫБРАТЬ ПЕРВЫЕ 300 КурсыВалют.Курс КАК Курс, КурсыВалют.Период КАК Период ПОМЕСТИТЬ ВременнаяТаблица ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют УПОРЯДОЧИТЬ ПО Курс УБЫВ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВЫРАЗИТЬ(ВременнаяТаблица.Курс КАК ЧИСЛО(10, 0)) КАК Курс, АВТОНОМЕРЗАПИСИ() КАК Поле1 ПОМЕСТИТЬ ВременнаяТаблица1 ИЗ ВременнаяТаблица КАК ВременнаяТаблица СГРУППИРОВАТЬ ПО ВЫРАЗИТЬ(ВременнаяТаблица.Курс КАК ЧИСЛО(10, 0)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВременнаяТаблица.Курс КАК Курс, ВременнаяТаблица1.Поле1 КАК ЦелыеЧисла, ВременнаяТаблица.Период КАК Период ИЗ ВременнаяТаблица КАК ВременнаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица1 КАК ВременнаяТаблица1 ПО ((ВЫРАЗИТЬ(ВременнаяТаблица.Курс КАК ЧИСЛО(10, 0))) = ВременнаяТаблица1.Курс) УПОРЯДОЧИТЬ ПО ЦелыеЧисла, Период |
|||
4
RomanYS
23.05.22
✎
15:23
|
(3) похоже задачу не понял. Ему нужно объединить в группы, а не округлить значения
|
|||
5
location
naïve
23.05.22
✎
15:25
|
(4) получается проще обойти все в цикле и проверять попадает под условия с наращиванием итога?
|
|||
6
RomanYS
23.05.22
✎
15:26
|
(5) безусловно проще
|
|||
7
lodger
23.05.22
✎
15:57
|
(6) так оно и собрано в группы, через округление. главное сам механизм, а не конкретное решение.
|
|||
8
Said_We
23.05.22
✎
16:09
|
(7) Сгруппировать текущую таблицу можно без соединений. Ответ в (1).
Но в (0) не понятно что спросил. Поэтому решение может есть, а может что-то другое надо. |
|||
9
Джинн
23.05.22
✎
16:25
|
(0) Эмуляция процедурной обработки в запросах - еще тот геморрой. Почему процедурно не обработать? А при необходимости обратно ТЗ в запрос отдать.
|
|||
10
SuperMario
24.05.22
✎
09:31
|
(9) ну да. Заколхозить всегда проще. Голову включать не надо.
|
|||
11
lodger
24.05.22
✎
10:05
|
(8) завтра поступит 200+ штук. запрос переписывать будешь?
через неделю поступит 500+штук. запрос переписывать будешь? через месяц поступит 1000+ штук. запрос переписывать будешь? |
|||
12
Джинн
24.05.22
✎
10:11
|
(10) "Включение головы" часто приводит с непредсказуемым результатам. Как-то долго бился с запросом, включающим 12 временных таблиц. Схожая задача - выполнение расчета по бюджетной модели с имитацией процедурной обработки. Вроде как все правильно. Вроде даже красиво, запросом. Но рвет данные и все. Пару дней танцы с бубном, отладка по кускам. В итоге оказалось, что мой супер-пупер правильный запрос движок как-то по своему оптимизировал дополнительно и обрезал один из наборов данных. Конечно потом две недели переписки с 1С в стиле "моя твоя не понимай" и "обновите релиз конфигурации (вроде бы какое отношение к движку)" и "мы передадим ошибку в отдел разработки". Сделал бы нормально - сэкономил бы массу времени. И т.к. мы тут ремеслом занимаемся, а не искусством, то и денег.
|
|||
13
RomanYS
24.05.22
✎
10:18
|
(10) В данном случае с точки зрения прода заколхозить как раз решить задачу запросом. Кстати со спортивной точки зрения задачка реально интересная, попробуй предложить решение.
|
|||
14
Ryzeman
24.05.22
✎
10:45
|
(11) ВЫБОР ВЫРАЗИТЬ(КОЛИЧЕСТВО(ТвояТаблица.Номенклатура) / 100) КАК ЧИСЛО(3, 0)) КАК НомерСбора
Вот красиво в строчку собрать уже не выйдет |
|||
15
СвинТуз
24.05.22
✎
11:30
|
(0) Можно. Одним запросом.
|
|||
16
СвинТуз
24.05.22
✎
11:31
|
без циклов.
|
|||
17
СвинТуз
24.05.22
✎
11:33
|
Дебиторку по банковским дням (не по календарным) одним запросом без циклов можно.
Посчитать число дней просрочки. Без циклов. |
|||
18
СвинТуз
24.05.22
✎
11:36
|
Запрос не сложный и скучный )))
|
|||
19
Said_We
24.05.22
✎
11:45
|
(11) А что параметры у запроса уже отменили?
|
|||
20
Said_We
24.05.22
✎
11:46
|
(13) Не уверен я, что понял условия в (0) правильно. Автор выйдет если, то может пояснит детали, что он хотел-то.
|
|||
21
RomanYS
24.05.22
✎
11:52
|
(18) Попробуй. Возможно ты неправильно понял задачу.
Задача раскидать по ФИФО в упаковки фиксированного объема. |
|||
22
Said_We
24.05.22
✎
13:00
|
(21) В (0) нет слова ФИФО и даже намёка на то, что надо что-то куда-то раскидать.
Есть слово "распределить", которое можно понять и как сгруппировать. "если количество самой позиции больше 100 она должна войти в отдельное собрание" - войти в какую-то отдельную группу. Не написано что в следующую. А в примере вообще "Номенклатура4 70 сбор3" меньше 100 и группа отдельная. |
|||
23
RomanYS
24.05.22
✎
13:20
|
(22) однако нумерация сборов в примере идёт по фифо и начальный порядок строк не нарушен
>>А в примере вообще "Номенклатура4 70 сбор3" меньше 100 и группа отдельная. Так к ней и нечего положить, особенно если учесть порядок |
|||
24
Said_We
24.05.22
✎
16:28
|
Что такое "сбор"?
Номенклатуры разные в примере. Их вместе можно мешать? Нормально задача в (0) не поставлена. Может быть что угодно. |
|||
25
Лирик
24.05.22
✎
16:52
|
(17) Можно, и работает
|
|||
26
SuperMario
24.05.22
✎
17:47
|
(12) причем тут задача в (0) и Ваш не совсем удачный опыт написания запросов по бюджетной модели с имитацией?
Обжегся на молоке, дует на воду. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |