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

Объединение запросов

Автор Alex56, 03 янв 2014, 22:26

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

Alex56

Здравствуйте. Что я делаю не так при объединении запросов.

ВЫБРАТЬ
   ТаблицаОсновныеНач.ОсновныеНачРезультат,
   ТаблицаОсновныеНач.ПериодРегистрацииОсн КАК ПериодРегистрации,
   NULL КАК РезультатДопНач,
   ТаблицаОсновныеНач.ОсновныеНачМассив,
   NULL КАК РезультатДопНачМассив
ИЗ
   (ВЫБРАТЬ
      НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрацииОсн,
      СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК ОсновныеНачРезультат,
      СУММА(ВЫБОР
            КОГДА ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВидыРасчета)
               ТОГДА ОсновныеНачисленияРаботниковОрганизаций.Результат
            ИНАЧЕ 0
         КОНЕЦ) КАК ОсновныеНачМассив
   ИЗ
      РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   ГДЕ
      ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ПериодРегистрации1 И &ПериодРегистрации2
      И ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = &ФизЛицо
   
   СГРУППИРОВАТЬ ПО
      НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ)) КАК ТаблицаОсновныеНач

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   NULL,
   ТаблицаДопНач.ПериодДопНачислений,
   ТаблицаДопНач.РезультатДопНач,
   NULL,
   ТаблицаДопНач.РезультатДопНачМассив
ИЗ
   (ВЫБРАТЬ
      НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ) КАК ПериодДопНачислений,
      СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат) КАК РезультатДопНач,
      СУММА(ВЫБОР
            КОГДА ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВидРасчетаДоплоНач)
               ТОГДА ДополнительныеНачисленияРаботниковОрганизаций.Результат
            ИНАЧЕ 0
         КОНЕЦ) КАК РезультатДопНачМассив
   ИЗ
      РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   ГДЕ
      ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ПериодРегистрации1 И &ПериодРегистрации2
      И ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо = &ФизЛицо
   
   СГРУППИРОВАТЬ ПО
      НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ)) КАК ТаблицаДопНач
Нужно постоянно трудиться.

Alex56

Делал так тоже не помогло
ВЫБРАТЬ
   ТаблицаОсновныеНач.ОсновныеНачРезультат,
   ТаблицаОсновныеНач.ПериодРегистрацииОсн КАК ПериодРегистрации,
   0 КАК РезультатДопНач,
   ТаблицаОсновныеНач.ОсновныеНачМассив,
   0 КАК РезультатДопНачМассив
ИЗ
   (ВЫБРАТЬ
      НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрацииОсн,
      СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК ОсновныеНачРезультат,
      СУММА(ВЫБОР
            КОГДА ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВидыРасчета)
               ТОГДА ОсновныеНачисленияРаботниковОрганизаций.Результат
            ИНАЧЕ 0
         КОНЕЦ) КАК ОсновныеНачМассив
   ИЗ
      РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
   ГДЕ
      ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ПериодРегистрации1 И &ПериодРегистрации2
      И ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо = &ФизЛицо
   
   СГРУППИРОВАТЬ ПО
      НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ)) КАК ТаблицаОсновныеНач

ОБЪЕДИНИТЬ

ВЫБРАТЬ
   0,
   ТаблицаДопНач.ПериодДопНачислений КАК ПериодРегистрации,
   ТаблицаДопНач.РезультатДопНач,
   0,
   ТаблицаДопНач.РезультатДопНачМассив
ИЗ
   (ВЫБРАТЬ
      НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ) КАК ПериодДопНачислений,
      СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат) КАК РезультатДопНач,
      СУММА(ВЫБОР
            КОГДА ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВидРасчетаДоплоНач)
               ТОГДА ДополнительныеНачисленияРаботниковОрганизаций.Результат
            ИНАЧЕ 0
         КОНЕЦ) КАК РезультатДопНачМассив
   ИЗ
      РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
   ГДЕ
      ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ПериодРегистрации1 И &ПериодРегистрации2
      И ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо = &ФизЛицо
   
   СГРУППИРОВАТЬ ПО
      НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ)) КАК ТаблицаДопНач
Нужно постоянно трудиться.

GRADUS

Все работает так, как ты написал )

Только ты знаешь, что ты хотел написать )

Объединение отрабатывает верно на 100 процентов.

И там надо "объединить все" писать.

mixqn

Ildar Ziganshin, дам вам совет: учитывая, что вы занимаетесь программированием на 1С, вам нужно уметь выслушивать нечеткие "хотелки" пользователя, формализовывать их и составлять ТЗ. Учитывая это, вы должны уметь четко формулировать свои мысли.
Это я все к чему: в 2-ух ваших постах "многобукафф", а понять при этом в чем проблема очень сложно.

По скриншоту я предположил (если я не прав - исправьте меня, только уже словами без запросов: максимально лаконично и четко описание проблемы) что задача в том, чтобы объединить строки с одной датой в одну.
Чтобы это сделать нужно ваш запрос заключить в подзапрос - то есть буквально, написать вверху: "ВЫБРАТЬ * ИЗ (" <далее текст вашего запроса> ") КАК ПодЗапрос" (псевдоним можете указать свой).
Затем можно этот запрос открыть конструктором.
Чтобы склеить строки по дате, нужно по дате сгруппировать и описать для суммируемых полей агрегатные функции (СУММА, МАКСИМУМ, МИНИМУМ и т.д.).

Чтобы было совсем понятно, почему так: 2 строки с одной датой, но разными данными скорее всего получаются их 2-х разных запросов, которые объединяются инструкцией ОБЪЕДИНИТЬ. То есть буквально так: представьте себе 2 физических таблицы, в одной их которых одна строка с датой 01.08.2013, во второй таблице другая строка с такой же датой. Затем эти таблицы объединяются - то есть буквально, записи одной таблицы добавляются к записям второй. Было строк 2, осталось их так же 2. Чтобы склеить в одну - нужно описали условия этой склейки, то есть указать группировочные поля и суммируемые.

Много написал, но, надеюсь, стало понятнее.

Alex56

У меня два вложенных запроса. Их нужно объединить их даты. У меня пока получается допустим апрель апрель, а мне надо только апрель. Во вложенном запросе нормально группируется, группирую и суммирую это видно в запросе.
Добавлено: 04 янв 2014, 12:20


Чтобы склеить в одну - нужно описали условия этой склейки, то есть указать группировочные поля и суммируемые.

Как это сделать в СКД?
Добавлено: 04 янв 2014, 12:23


Сгруппировал в обоих запросах, но это не помогло.
Добавлено: 04 янв 2014, 12:31


Цитата: GRADUS от 03 янв 2014, 22:55
Все работает так, как ты написал )

Только ты знаешь, что ты хотел написать )

Объединение отрабатывает верно на 100 процентов.

И там надо "объединить все" писать.
Мне как раз таки все и не надо, если писать объединить все то два одинаковые строки запишутся два раза, а мне надо только один раз, только один месяц, а если объединить все то два раза будет апрель апрель а надо мне только апрель.
Нужно постоянно трудиться.

LordWizard

"Женился ты бы барин..."
Точнее поучился бы где-нибудь.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Alex56

Цитата: LordWizard от 04 янв 2014, 12:45
"Женился ты бы барин..."
Точнее поучился бы где-нибудь.

Слушай не знаешь молчи. Объясните кто знает что надо сделать?
Добавлено: 04 янв 2014, 14:04


Возможно дело в том что эти поля разные. Хотя показываются как одни и те же.
Добавлено: 04 янв 2014, 14:09


Спасибо, сделал вложенный запрос и вуаля получилось.
Нужно постоянно трудиться.

LordWizard

Цитата: Ildar Ziganshin от 04 янв 2014, 13:19Слушай не знаешь молчи. Объясните кто знает что надо сделать?
Слушайте, Ильдар! у вас большинство тем "самый сложный отчет"; "ой не получается", через 5 минут "ой я все разобрался". Я понимаю, когда человек сутки сидит и действительно не может разобраться. А ваши сообщения больше похожи на спам вопросов для ваших клиентов, которые вы сами решить не можете, решаете здесь и спокойненько получаете деньги. Не в деньгах счастье, сэкономьте - пойдите учиться. Правда поможет.

Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

GRADUS

Цитата: LordWizard от 04 янв 2014, 14:52
Цитата: Ildar Ziganshin от 04 янв 2014, 13:19Слушай не знаешь молчи. Объясните кто знает что надо сделать?
Слушайте, Ильдар! у вас большинство тем "самый сложный отчет"; "ой не получается", через 5 минут "ой я все разобрался". Я понимаю, когда человек сутки сидит и действительно не может разобраться. А ваши сообщения больше похожи на спам вопросов для ваших клиентов, которые вы сами решить не можете, решаете здесь и спокойненько получаете деньги. Не в деньгах счастье, сэкономьте - пойдите учиться. Правда поможет.

Не кричи на человека, ты вообще программирование не знаешь :bleh: :bleh:

LordWizard

Конечно не знаю, с 1986 года я вообще не знаю ни одного языка программирования - ни С++, ни Делфи, вообще ничего!А сертификаты мне вообще за ящики водки с колбасой давали! :ooifh:
Добавлено: 04 янв 2014, 17:35


Конечно мне больше нравится консультировать по бухгалтерскому и налоговому учету, а пишу конвертации, обработки и все остальное - просто по работе, т.е. чисто под задачи клиента. Однако надеюсь после последнего семинара ЗАО "1С" внедрят в БП пару моих разработок.
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Теги:

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

Рейтинг@Mail.ru

Поиск