Пните в правильную сторону построения запроса
Добрый день инфостартцы!
Прошу навести меня на путь истинный.
Хочу получить запросом остатки по регистру ТоварыОрганизации по каждой организации. Список организаций получаю запросом:
Необходимо прикрутить к этому запросу запрос по остаткам по массиву номенклатур
Чтобы результирующая таблица выглядела примерно так:
____________________________________________________________ _________________________
Номенклатура1 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Номенклатура2 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Номенклатура3 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Соотвественно строки - это номенклатура, которая передается параметром в запрос, а столбцы - это количество организаций из первого запроса.
В интернетах рылся в поисках примера, ничего путного не нашел.
Прошу навести меня на путь истинный.
Хочу получить запросом остатки по регистру ТоварыОрганизации по каждой организации. Список организаций получаю запросом:
ВЫБРАТЬ
ДоговорыКонтрагентов.Организация,
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ГДЕ
ДоговорыКонтрагентов.Владелец = &Контрагент
И ДоговорыКонтрагентов.ВидДоговора В(&Вид)
И ДоговорыКонтрагентов.СрокДействия < &Дата
ПоказатьНеобходимо прикрутить к этому запросу запрос по остаткам по массиву номенклатур
Чтобы результирующая таблица выглядела примерно так:
____________________________________________________________
Номенклатура1 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Номенклатура2 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Номенклатура3 | ОстатокОрганизация1 | ОстатокОрганизация2| ОстатокОрганизация3...
Соотвественно строки - это номенклатура, которая передается параметром в запрос, а столбцы - это количество организаций из первого запроса.
В интернетах рылся в поисках примера, ничего путного не нашел.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Текст запроса:
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыОрганизацийОстатки.Организация КАК Организация,
| ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(
| &Дата,
| Организация В
| (ВЫБРАТЬ
| ДоговорыКонтрагентов.Организация
| ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
| ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора
| И ДоговорыКонтрагентов.СрокДействия <= &СрокДействия)) КАК ТоварыОрганизацийОстатки
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизацийОстатки.Организация,
| ТоварыОрганизацийОстатки.Номенклатура
|ИТОГИ
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура,
| Организация"
Далее твоя таблица получается обходом группировки "Организация" в выборке с ключевым словом "ВСЕ"
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыОрганизацийОстатки.Организация КАК Организация,
| ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
| СУММА(ТоварыОрганизацийОстатки.КоличествоОстаток) КАК КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(
| &Дата,
| Организация В
| (ВЫБРАТЬ
| ДоговорыКонтрагентов.Организация
| ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
| ГДЕ
| ДоговорыКонтрагентов.Владелец = &Контрагент
| И ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора
| И ДоговорыКонтрагентов.СрокДействия <= &СрокДействия)) КАК ТоварыОрганизацийОстатки
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизацийОстатки.Организация,
| ТоварыОрганизацийОстатки.Номенклатура
|ИТОГИ
| СУММА(КоличествоОстаток)
|ПО
| Номенклатура,
| Организация"
Далее твоя таблица получается обходом группировки "Организация" в выборке с ключевым словом "ВСЕ"
Вменяемо нет, разве только пойти на принцип и сделать какого-нибудь уродца. Если заранее количество организаций неизвестно, то в один запрос все не запихать. Можно по результатам первого запроса сотворить динамически запрос по остаткам (это я имел в виду, когда упоминал уродца), где результат получится объединением запросов по каждой организации из первого запроса.
(5) Лучше обойдите итоги по организации и сформируйте ТЗ, а дальше хоть запрос, хоть код...
1) Есть вероятность. что после Вас кто-то будет читать текст процедуры, и разобраться в формировании динамических запросов сложнее чем в выгрузке в ТЗ.
2) При большом количестве организации у Вас, соответственно, будет большое количество соединений, что может быть не оптимально.
1) Есть вероятность. что после Вас кто-то будет читать текст процедуры, и разобраться в формировании динамических запросов сложнее чем в выгрузке в ТЗ.
2) При большом количестве организации у Вас, соответственно, будет большое количество соединений, что может быть не оптимально.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот