|
Запрос один к многим с итогами | ☑ | ||
---|---|---|---|---|
0
DrLekter
01.06.16
✎
12:05
|
Есть документ с двумя табличными частями - ТЧ1 и ТЧ2. Одной строке ТЧ1 может соответствовать одна или несколько строк ТЧ2 (связаны через реквизит, назовем его Идентификатор, например), а может и не соответствовать. Задача: сформировать выборку вида:
- СтрокаТЧ1 Сумма(КоличествоТЧ1) ------СтрокаТЧ2_1 Сумма(КоличествоТЧ2_1) ------СтрокаТЧ2_2 Сумма(КоличествоТЧ2_2) ------..... с вариантом: - СтрокаТЧ1 Сумма(КоличествоТЧ1) ------Дополнительная группировка (например, документ) Сумма(КоличествоТЧ1) ----------СтрокаТЧ2_1 Сумма(КоличествоТЧ2_1) ----------СтрокаТЧ2_2 Сумма(КоличествоТЧ2_2) ------..... Физический смысл задачи: анализ замен на производстве. Не хочу делать переборами, хочу красивым и быстрым запросом :) Пока понимаю только, как на последнем этапе вместо группировки получить ТЗ, а как потом суммировать ее "внутренности"? |
|||
1
mistеr
01.06.16
✎
12:51
|
Так в чем конкретно проблема? И выложи текущий вариант.
Кстати, а "Дополнительная группировка (например, документ)" из ТЧ1 или ТЧ2? |
|||
2
mistеr
01.06.16
✎
12:52
|
Да, и зачем ТЗ?
|
|||
3
Мимохожий Однако
01.06.16
✎
13:07
|
Вытаскивай в запрос две таблицы с разными ТЧ и соединяй через СвойЛюбимыйИдентификатор. Начни тренироваться в консоли запросов.
|
|||
4
DrLekter
01.06.16
✎
13:20
|
(1) Документ один и тот же
(3) Я так и делаю, но, кажется, будет двоиться количество. Пока дошел вот до такого: "ВЫБРАТЬ | ПроизводствоЗамены.КарточкаЗамены, | ПроизводствоЗамены.Ссылка, | ПроизводствоЗамены.Номенклатура, | ПроизводствоЗамены.Количество, | ПроизводствоЗамены.КоличествоФактическое, | ПроизводствоЗамены.Ссылка.Дата, | ПроизводствоЗамены.Ссылка.МестоОбработки |ПОМЕСТИТЬ Замены |ИЗ | Документ.Производство.Замены КАК ПроизводствоЗамены |ГДЕ | ПроизводствоЗамены.Ссылка.Проведен = &Проведен | И ПроизводствоЗамены.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ПроизводствоИспользовано.КарточкаЗамены, | ПроизводствоИспользовано.Ссылка, | ПроизводствоИспользовано.Номенклатура, | ПроизводствоИспользовано.Количество, | ПроизводствоИспользовано.ФактическоеКоличество, | ПроизводствоИспользовано.Ссылка.Дата, | ПроизводствоИспользовано.Ссылка.МестоОбработки |ПОМЕСТИТЬ Использовано |ИЗ | Документ.Производство.Использовано КАК ПроизводствоИспользовано |ГДЕ | ПроизводствоИспользовано.Ссылка.Проведен = &Проведен | И ПроизводствоИспользовано.Ссылка.Дата МЕЖДУ &ДатаС И &ДатаПо |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Замены.КарточкаЗамены, | Замены.Ссылка, | Замены.Дата КАК Дата, | Замены.МестоОбработки, | Замены.Номенклатура КАК НоменклатураЗамены, | Замены.Количество КАК ПлановоеКоличествоЗамены, | Замены.КоличествоФактическое КАК ФактическоеКоличествоЗамены, | Использовано.Номенклатура КАК ПлановаяНоменклатура, | Использовано.Количество КАК ПлановоеКоличество, | Использовано.ФактическоеКоличество КАК ФактическоеКоличество |ПОМЕСТИТЬ ПредварительнаяВыборка |ИЗ | Замены КАК Замены | ЛЕВОЕ СОЕДИНЕНИЕ Использовано КАК Использовано | ПО Замены.Ссылка = Использовано.Ссылка | И Замены.КарточкаЗамены = Использовано.КарточкаЗамены; " и тут до меня дошло, что в случае, когда в ТЧ Замены две строки соответствуют одной, количество по ТЧ Использовано удвоится, когда начну суммировать итоги. Если бы не нужно былдо суммировать количество - вообще не проблема, если бы не нужны были дополнительные группировки - можно было бы исползовать МАКСИМУМ() вместо СУММА(). А так пока задумался... |
|||
5
4eater
01.06.16
✎
13:41
|
Делай через объединение
|
|||
6
Тролль главный
01.06.16
✎
13:53
|
(5)+1
|
|||
7
DrLekter
01.06.16
✎
14:37
|
О, спасибо! Как я про Объединить все забыл ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |