![]() |
![]() |
![]() |
|
Задублировать строки в запросе/Скд | ☑ | ||
---|---|---|---|---|
0
Drukkk
20.12.16
✎
12:16
|
Здравствуйте, обычно обращаются с обратным, но я видимо не ищу легких путей)
есть выборка данных у которой один из выбираемых реквизитов содержит количество объектов, необходимо в зависимости от значения этого числа выводить такое же количество строк в результате запроса/в итоге в отчете например: Наименование КоличествоОбъектов Стул 1 1 Стол 1 2 Стол 1 2 Данные хранятся в регистре в виде Стул - 5шт, Стол-2шт выводится это дело на табличный документ, есть ли варианты на этапе запроса/настроек скд продублировать строки или придется все таки править итоговый табдок? не упр формы. |
|||
1
VladZ
20.12.16
✎
12:22
|
(0) Зачем?
|
|||
2
VladZ
20.12.16
✎
12:23
|
Перефразирую: какова конечная цель?
|
|||
3
VladZ
20.12.16
✎
12:24
|
А если количество будет 100? А 1000? А если мульон?
|
|||
4
Drukkk
20.12.16
✎
12:27
|
(1)
пожелания пользователя(откуда же еще такое может придуматься), цифры в пределах 1-10 не должно быть ничего страшного, но как информация для учета возможных косяков спасибо |
|||
5
VladZ
20.12.16
✎
12:29
|
Выводи программно. Т.е. получил всю инфу запросом, а потом повторяй при выводе нужное количество раз.
А в целом, задача странная. На большой количестве данных - завалится. |
|||
6
Windyhead
20.12.16
✎
12:29
|
(0) Если значение будет до 10 Сделай такую табличку и соеднии с ней по условию меньше равно.
ВЫБРАТЬ 1 ПОМЕСТИТЬ ВТНомера ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 10 ; |
|||
7
VladZ
20.12.16
✎
12:29
|
*на большом.
|
|||
8
Drukkk
20.12.16
✎
12:31
|
(6) попробую, спасибо
|
|||
9
Windyhead
20.12.16
✎
12:31
|
(5) Зачем циклом если можно запросом?
|
|||
10
VladZ
20.12.16
✎
12:32
|
(9) Затем что нет гарантии, что завтра число 10 станет числом 15 или 20.
|
|||
11
Windyhead
20.12.16
✎
12:45
|
(10) Гарантий никогда никаких нет, но есть условия задачи.
Можно подстраховаться и сделать на 100 или 1000 Например такой конструкцией ВЫБРАТЬ Единицы.Номер + Десятки.Номер * 10 + ЕСТЬNULL(Сотни.Номер, 0) * 100 + 1 КАК НомерСтроки ПОМЕСТИТЬ ВТНомераСтрок ИЗ ВТНомера КАК Единицы ЛЕВОЕ СОЕДИНЕНИЕ ВТНомера КАК Десятки ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ ВТНомера КАК Сотни ПО (ИСТИНА) ГДЕ Единицы.Номер + Десятки.Номер * 10 + ЕСТЬNULL(Сотни.Номер, 0) * 100 <= 999 |
|||
12
Windyhead
20.12.16
✎
12:47
|
ведь врядли кто то хочет видеть 1000 строк по каждой позиции, тут наверное уже будет теряться задумка
|
|||
13
ИС-2
20.12.16
✎
13:05
|
||||
14
Drukkk
20.12.16
✎
15:49
|
(13) спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |