Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2024, 01:36

Временные таблицы в запросе

Автор Новенькая, 19 мар 2013, 15:21

0 Пользователей и 1 гость просматривают эту тему.

Новенькая

Здравствуйте!!! Подскажите пожалуйста, как правильно, объединить таблицы:
Есть запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
НАЧАЛОПЕРИОДА(ДоходыОбороты.Период, МЕСЯЦ) КАК Период,
ДоходыОбороты.Регистратор КАК ДокументФакт,
ДоходыОбороты.ОбъектЗатрат КАК ОбъектЗатрат,
ДоходыОбороты.Литера КАК ЛитераФакт,
ДоходыОбороты.Контрагент КАК КонтрагентФакт,
ДоходыОбороты.ДоговорКонтрагента КАК ДоговорКонтрагентаФакт,
СУММА(ДоходыОбороты.СуммаСНДСУпрОборот) КАК ДоходРасходРазница
ПОМЕСТИТЬ Доходы
{ВЫБРАТЬ
Период,
ДокументФакт.*,
ОбъектЗатрат.*,
ЛитераФакт.*,
КонтрагентФакт.*,
ДоговорКонтрагентаФакт.*,
ДоходРасходРазница}
ИЗ
РегистрНакопления.Доходы.Обороты(
   {(&НачалоПериода)},
   {(&КонецПериода)},
   Регистратор,
   ВидДоходов <> ЗНАЧЕНИЕ(Перечисление.ВидыДоходов.Депозит)
    И ВидДоходов <> ЗНАЧЕНИЕ(Перечисление.ВидыДоходов.ПоступленияОтДольщиков)) КАК ДоходыОбороты
{ГДЕ
(НАЧАЛОПЕРИОДА(ДоходыОбороты.Период, МЕСЯЦ)) КАК Период,
ДоходыОбороты.Регистратор.* КАК ДокументФакт,
ДоходыОбороты.ОбъектЗатрат.*,
ДоходыОбороты.Литера.* КАК ЛитераФакт,
ДоходыОбороты.Контрагент.* КАК КонтрагентФакт,
ДоходыОбороты.ДоговорКонтрагента.* КАК ДоговорКонтрагентаФакт,
ДоходыОбороты.СуммаСНДСУпрОборот КАК ДоходРасходРазница}
СГРУППИРОВАТЬ ПО
ДоходыОбороты.Регистратор,
ДоходыОбороты.ОбъектЗатрат,
ДоходыОбороты.Литера,
ДоходыОбороты.Контрагент,
ДоходыОбороты.ДоговорКонтрагента,
НАЧАЛОПЕРИОДА(ДоходыОбороты.Период, МЕСЯЦ)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СУММА(ЗатратыОбороты.СуммаСНДСУпрОборот) КАК ДоходРасходРазница,
ЗатратыОбороты.Контрагент КАК КонтрагентФакт,
ЗатратыОбороты.ДоговорКонтрагента КАК ДоговорКонтрагентаФакт,
ЗатратыОбороты.Литера КАК ЛитераФакт,
ЗатратыОбороты.Регистратор КАК ДокументФакт,
ЗатратыОбороты.ОбъектЗатрат КАК ОбъектЗатрат,
НАЧАЛОПЕРИОДА(ЗатратыОбороты.Период, МЕСЯЦ) КАК Период
ПОМЕСТИТЬ Расход
{ВЫБРАТЬ
ДоходРасходРазница,
КонтрагентФакт.*,
ДоговорКонтрагентаФакт.*,
ЛитераФакт.*,
ДокументФакт.*,
ОбъектЗатрат.*,
Период}
ИЗ
РегистрНакопления.Затраты.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Регистратор, НЕ ГарантийныеУдержания) КАК ЗатратыОбороты
{ГДЕ
ЗатратыОбороты.Контрагент.* КАК КонтрагентФакт,
ЗатратыОбороты.ДоговорКонтрагента.* КАК ДоговорКонтрагентаФакт,
ЗатратыОбороты.Литера.* КАК ЛитераФакт,
(ЕСТЬNULL(ЗатратыОбороты.СуммаСНДСУпрОборот, 0)) КАК ДоходРасходРазница,
ЗатратыОбороты.Регистратор.* КАК ДокументФакт}
СГРУППИРОВАТЬ ПО
ЗатратыОбороты.Контрагент,
ЗатратыОбороты.ДоговорКонтрагента,
ЗатратыОбороты.Литера,
ЗатратыОбороты.Регистратор,
ЗатратыОбороты.ОбъектЗатрат,
НАЧАЛОПЕРИОДА(ЗатратыОбороты.Период, МЕСЯЦ)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЕСТЬNULL(Доходы.ДоходРасходРазница, 0) - ЕСТЬNULL(Расход.ДоходРасходРазница, 0) КАК ДоходРасходРазница,
Расход.ОбъектЗатрат,
Расход.Период,
"разница" КАК ВидПланирования,
2 КАК Сортировка
ИЗ
Расход КАК Расход
  ЛЕВОЕ СОЕДИНЕНИЕ Доходы КАК Доходы
  ПО Расход.ОбъектЗатрат = Доходы.ОбъектЗатрат
   И Расход.Период = Доходы.Период
Я получаю 2 временные таблицы Доход и Расход. как мне их правильно в итоге объединить? Сейчас получается если записи по расходу не было, то выражение ЕСТЬNULL(Доходы.ДоходРасходРазница, 0) - ЕСТЬNULL(Расход.ДоходРасходРазница, 0) не считается вообще....а мне надо, чтобы в этом случае выводило сумму дохода Доходы.ДоходРасходРазница....заранее спасибо

Новенькая

Справилась. Вопрос закрыт.
ВЫБРАТЬ
   ЕСТЬNULL(Доходы.ДоходРасходРазница, 0) - ЕСТЬNULL(Расход.ДоходРасходРазница, 0) КАК ДоходРасходРазница,
   ЕСТЬNULL(Расход.Период, Доходы.Период) КАК Период,
   "разница" КАК ВидПланирования,
   2 КАК Сортировка,
ЕСТЬNULL(Расход.ОбъектЗатрат, Доходы.ОбъектЗатрат) как  ОбъектЗатрат
ИЗ
   Расход КАК Расход
      полное СОЕДИНЕНИЕ Доходы КАК Доходы
      ПО Расход.ОбъектЗатрат = Доходы.ОбъектЗатрат
         И Расход.Период = Доходы.Период

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск