helpf.pro
Регистрация

v8: Не работает ОБЪЕДИНИТЬ в запросе

bk1975
04.02.2014 13:11Прочитано: 3469
Задача в том, чтобы собрать данные из двух регистров.
По отдельности каждый подзапрос работает, но в итоге получается только колонка "Итого план".

ВЫБРАТЬ
Статья, СУММА(СуммаПлан) КАК ИтогоПлан, СУММА(СуммаФакт) КАК ИтогоФакт
ИЗ (
ВЫБРАТЬ
ПланыДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК Статья,
ПланыДвиженияДенежныхСредствОбороты.СуммаУпрОборот КАК СуммаПлан,
0 КАК СуммаФакт
ИЗ
РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты КАК ПланыДвиженияДенежныхСредствОбороты
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДвиженияДенежныхСредствОбороты.СтатьяДвиженияДенежныхСредств КАК Статья,
ДвиженияДенежныхСредствОбороты.СуммаУпрОборот КАК СуммаФакт,
0 КАК СуммаПлан
ИЗ
РегистрНакопления.ДвиженияДенежныхСредств.Обороты КАК ДвиженияДенежныхСредствОбороты
) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО Статья
Yandex
Возможно, вас также заинтересует
Реклама на портале
mikele
04.02.2014 15:32Ответ № 1
текст запроса правильный
и может я что не так делаю, но запрос отработал как надо
bk1975
04.03.2014 15:18Ответ № 2
Уточню задачу так :

нужно сделать общий отчёт - соединить таблицы РегистрНакопления.ДвиженияДенежныхСредств.Обороты и РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты

проблема в том, что когда соединяю таблицы, то для первой таблицы (где нет сценария , пишу NULL КАК Сценарий.

а потом, когда выбираем в условии любой сценарий, то колонка "факт" пропадает.

фрагмент запроса :

"ВЫБРАТЬ
| NULL КАК Сценарий,
| 0 КАК СуммаПлан,
| ВЫБОР
| КОГДА ДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
| ТОГДА ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
| ИНАЧЕ -ДвиженияДенежныхСредствОбороты.СуммаУпрОборот
| КОНЕЦ КАК СуммаФакт
|ИЗ
| РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {NULL КАК Сценарий, (ВидДенежныхСредств).* КАК ВидДенежныхСредств, (СтатьяДвиженияДенежныхСредств).* КАК СтатьяДвиженияДенежныхСредств, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка, (ДокументДвижения).* КАК ДокументПланирования, (ДокументДвижения.Подразделение).* КАК Подразделение}) КАК ДвиженияДенежныхСредствОбороты
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
|
| ПланыДвиженияДенежныхСредствОбороты.Сценарий КАК Сценарий,
| ВЫБОР
| КОГДА ПланыДвиженияДенежныхСредствОбороты.ПриходРасход = &Приход
| ТОГДА ПланыДвиженияДенежныхСредствОбороты.СуммаУпрОборот
| ИНАЧЕ -ПланыДвиженияДенежныхСредствОбороты.СуммаУпрОборот
| КОНЕЦ КАК СуммаПлан,
| 0 КАК СуммаФакт
|ИЗ
| РегистрНакопления.ПланыДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, {(Сценарий).* КАК Сценарий, (ВидДенежныхСредств).* КАК ВидДенежныхСредств, (СтатьяДвиженияДенежныхСредств).* КАК СтатьяДвиженияДенежныхСредств, (Контрагент).* КАК Контрагент, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Сделка).* КАК Сделка, (ДокументПланирования).* КАК ДокументПланирования, (ДокументПланирования.Подразделение).* КАК Подразделение}) КАК ПланыДвиженияДенежныхСредствОбороты
Mokey
04.03.2014 15:40Ответ № 3
Потому что в первом подзапросе стоит условие виртуальной таблицы {NULL КАК Сценарий}. Уберите его оттуда, потому что нет поля, значит и условия нет.
bk1975
05.03.2014 07:22Ответ № 4
а как потом объединить два запроса ?

в итогом запросе (и в построитель) надо передать это поле "сценарий".
Mokey
05.03.2014 09:38Ответ № 5
У Вас же в полях есть Сценарий, условие на него тут совершенно не нужно
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.