|
Проблема с запросом | ☑ | ||
---|---|---|---|---|
0
kabv
15.06.12
✎
09:40
|
Здравствуйте! Объединение двух запросов и группирую по 3 полям. Первый группирровка по 3 полям, второй по 2. Объединение по 2 полям. Когда получаю результат, то значение поля второго запроса (одна и таже цифра) записано во всех строках третьего уровня группировки и итог суммируется. Получается из второго запроса одна сумма умножается на количество вариантов третьего уровня группировки первого запроса. Можно для третьего уровня группировки установить значения поля второго запроса "0", а чтобы для первого и второго уровня (т.к. объединение по 2 полям) значения сохранились.
Заранее благодарен! |
|||
1
Нуф-Нуф
15.06.12
✎
09:41
|
запрос покажи
|
|||
2
Buster007
15.06.12
✎
09:41
|
(0) может проще запрос показать?
|
|||
3
kabv
15.06.12
✎
09:43
|
ВЫБРАТЬ
ВложенныйЗапрос.Подразделение КАК Подразделение, ВложенныйЗапрос.НоменклатурныеГруппы КАК НоменклатурныеГруппы, СУММА(ВложенныйЗапрос.СуммаОборотДт) КАК Расходы, ВложенныйЗапрос.СтатьиЗатрат КАК СтатьиЗатрат, СУММА(ВложенныйЗапрос1.Сумма) КАК Сумма {ВЫБРАТЬ Подразделение, НоменклатурныеГруппы, Расходы, СтатьиЗатрат, Сумма} ИЗ (ВЫБРАТЬ Проводки.Подразделение КАК Подразделение, Проводки.НоменклатурныеГруппы КАК НоменклатурныеГруппы, СУММА(Проводки.СуммаОборотДт) КАК СуммаОборотДт, Проводки.СтатьиЗатрат КАК СтатьиЗатрат {ВЫБРАТЬ Подразделение, НоменклатурныеГруппы, СуммаОборотДт} ИЗ (ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Субконто1 КАК НоменклатурныеГруппы, ХозрасчетныйОстаткиИОбороты.Субконто2 КАК СтатьиЗатрат, ХозрасчетныйОстаткиИОбороты.Подразделение КАК Подразделение, СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОсновноеПроизводство), , ) КАК ХозрасчетныйОстаткиИОбороты ГДЕ ХозрасчетныйОстаткиИОбороты.Подразделение <> &Подразделение СГРУППИРОВАТЬ ПО ХозрасчетныйОстаткиИОбороты.Субконто2, ХозрасчетныйОстаткиИОбороты.Субконто1, ХозрасчетныйОстаткиИОбороты.Подразделение) КАК Проводки ГДЕ Проводки.СуммаОборотДт <> 0 {ГДЕ Проводки.Подразделение, Проводки.НоменклатурныеГруппы, Проводки.СтатьиЗатрат} СГРУППИРОВАТЬ ПО Проводки.НоменклатурныеГруппы, Проводки.Подразделение, Проводки.СтатьиЗатрат ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВложенныйЗапрос.Подразделение, ВложенныйЗапрос.НоменклатурныеГруппы, СУММА(ВложенныйЗапрос.СуммаОборотДт), ВложенныйЗапрос.СтатьиЗатрат {ВЫБРАТЬ Подразделение, НоменклатурныеГруппы, СуммаОборотДт} ИЗ (ВЫБРАТЬ ЗатратыПодразделенийОбороты.Подразделение КАК Подразделение, ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа КАК НоменклатурныеГруппы, ЗатратыПодразделенийОбороты.СтатьяЗатрат КАК СтатьиЗатрат, СУММА(ЗатратыПодразделенийОбороты.Сумма20Оборот) КАК СуммаОборотДт {ВЫБРАТЬ Подразделение, НоменклатурныеГруппы, СтатьиЗатрат, СуммаОборотДт} ИЗ РегистрНакопления.ЗатратыПодразделений.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗатратыПодразделенийОбороты ГДЕ ЗатратыПодразделенийОбороты.Сумма20Оборот <> 0 И ЗатратыПодразделенийОбороты.Подразделение <> &Подразделение {ГДЕ ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа, ЗатратыПодразделенийОбороты.СтатьяЗатрат, ЗатратыПодразделенийОбороты.Подразделение} СГРУППИРОВАТЬ ПО ЗатратыПодразделенийОбороты.СтатьяЗатрат, ЗатратыПодразделенийОбороты.Подразделение, ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЗатратыПодразделенийОбороты.Подразделение, ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа, ЗатратыПодразделенийОбороты.СтатьяЗатрат, СУММА(ВЫБОР КОГДА &Дт26 ТОГДА ЗатратыПодразделенийОбороты.Сумма26Оборот ИНАЧЕ 0 КОНЕЦ) {ВЫБРАТЬ Подразделение, НоменклатурныеГруппы, СтатьиЗатрат, СуммаОборотДт} ИЗ РегистрНакопления.ЗатратыПодразделений.Обороты(&ДатаНач, &ДатаКон, , ) КАК ЗатратыПодразделенийОбороты ГДЕ ЗатратыПодразделенийОбороты.Сумма26Оборот <> 0 И ЗатратыПодразделенийОбороты.Подразделение <> &Подразделение {ГДЕ ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа, ЗатратыПодразделенийОбороты.СтатьяЗатрат, ЗатратыПодразделенийОбороты.Подразделение} СГРУППИРОВАТЬ ПО ЗатратыПодразделенийОбороты.СтатьяЗатрат, ЗатратыПодразделенийОбороты.Подразделение, ЗатратыПодразделенийОбороты.НоменклатурнаяГруппа) КАК ВложенныйЗапрос ГДЕ ВложенныйЗапрос.СуммаОборотДт <> 0 {ГДЕ ВложенныйЗапрос.Подразделение, ВложенныйЗапрос.НоменклатурныеГруппы, ВложенныйЗапрос.СтатьиЗатрат} СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Подразделение, ВложенныйЗапрос.НоменклатурныеГруппы, ВложенныйЗапрос.СтатьиЗатрат) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВложенныйЗапрос.НоменклатурныеГруппы КАК НоменклатурныеГруппы, ВложенныйЗапрос.Подразделение КАК Подразделение, ВложенныйЗапрос.Сумма КАК Сумма, ВложенныйЗапрос.СтатьиЗатрат КАК СтатьиЗатрат ИЗ (ВЫБРАТЬ РеализацияТоваровУслугУслуги.Субконто КАК НоменклатурныеГруппы, ПОДСТРОКА(РеализацияТоваровУслугУслуги.Ссылка.Комментарий, 0, 1000) КАК Подразделение, РеализацияТоваровУслугУслуги.Сумма КАК Сумма, NULL КАК СтатьиЗатрат ИЗ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги ГДЕ РеализацияТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон И РеализацияТоваровУслугУслуги.Ссылка.Организация = &Организация) КАК ВложенныйЗапрос) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.НоменклатурныеГруппы = ВложенныйЗапрос1.НоменклатурныеГруппы И (ВложенныйЗапрос1.Подразделение ПОДОБНО "%" + ВложенныйЗапрос.Подразделение.Наименование + "%") {ГДЕ ВложенныйЗапрос.Подразделение, ВложенныйЗапрос.НоменклатурныеГруппы, ВложенныйЗапрос.СтатьиЗатрат} СГРУППИРОВАТЬ ПО ВложенныйЗапрос.НоменклатурныеГруппы, ВложенныйЗапрос.Подразделение, ВложенныйЗапрос.СтатьиЗатрат УПОРЯДОЧИТЬ ПО НоменклатурныеГруппы, Подразделение, СтатьиЗатрат ИТОГИ СУММА(Расходы), СУММА(Сумма) ПО ОБЩИЕ, НоменклатурныеГруппы, Подразделение, СтатьиЗатрат {ИТОГИ ПО Подразделение, НоменклатурныеГруппы, СтатьиЗатрат} АВТОУПОРЯДОЧИВАНИЕ |
|||
4
kabv
15.06.12
✎
09:46
|
Группировка РеализацияТоваровУслугУслуги по 2 уровням вклинивается в "основной 3-х уровневый" и по недостающему третьему дублируется.
|
|||
5
Рэйв
15.06.12
✎
09:51
|
>>Получается из второго запроса одна сумма умножается на количество вариантов
Сколько раз соединение найдет в правой таблице строку удовлетворяющую условию, столько раз ее и присоединит. У тебя похоже ном группы равны везде. |
|||
6
kabv
15.06.12
✎
09:54
|
Это я знаю, хитрушка етсть какая-нибуть, чтобы ее занулить для вариантов третьей?
|
|||
7
Рэйв
15.06.12
✎
09:56
|
добавляй какое нибудь условие для соединения, чтобы соединие было уникальным для каждой строки правой таблицы
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |