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

Аналитическая таблица

Автор TamKar, 22 мая 2011, 18:47

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

TamKar

Кто может подскажите где я ошибаюсь с условиями в запросе, в отчете не выходит отпуск учебный, а не выходит.

ВЫБРАТЬ
   Начисления.ВидРасчета,
   Начисления.ПодразделениеОрганизации,
   Начисления.Категория,
   Начисления.Результат,
   Начисления.РезультатБуд,
   Начисления.РезультатПрош,
   Начисления.Сумма,
   ВЫБОР
      КОГДА Начисления.ВидРасчета ССЫЛКА ПланВидовРасчета.ОсновныеНачисленияОрганизаций
            ИЛИ Начисления.ВидРасчета ССЫЛКА ПланВидовРасчета.ДополнительныеНачисленияОрганизаций
         ТОГДА Начисления.ВидРасчета.Наименование
      ИНАЧЕ Начисления.ВидРасчета
   КОНЕЦ КАК ВидРасчетаНаименование
ИЗ
   (ВЫБРАТЬ
      ВЫБОР
         КОГДА НачисленияБезВСХ.ВидРасчета В (&ОтобранныеНачисления)
            ТОГДА "Вывлата резерва"
         КОГДА НачисленияБезВСХ.ВидРасчета В (&КомпенсацияОтпуска)
            ТОГДА "Денежная компенсация за неиспользованный отпуск"
         КОГДА НачисленияБезВСХ.ВидРасчета В (&ОтпускУчебный)
            ТОГДА "Отпуск учебный"
         ИНАЧЕ НачисленияБезВСХ.ВидРасчета
      КОНЕЦ КАК ВидРасчета,
      ЕСТЬNULL(НачисленияБезВСХ.ПодразделениеОрганизации, ЕСТЬNULL(ВРБуд.ПодразделениеОрганизации, ВРПрош.ПодразделениеОрганизации)) КАК ПодразделениеОрганизации,
      ЕСТЬNULL(НачисленияБезВСХ.Категория, ЕСТЬNULL(ВРБуд.Категория, ВРПрош.Категория)) КАК Категория,
      СУММА(ВЫБОР
            КОГДА НачисленияБезВСХ.ВидРасчета В (&ОтобранныеНачисления)
               ТОГДА (ЕСТЬNULL(НачисленияБезВСХ.Результат, 0) - ЕСТЬNULL(ВРБуд.Результат, 0) + ЕСТЬNULL(ВРПрош.Результат, 0)) * 0.0925
            ИНАЧЕ ЕСТЬNULL(НачисленияБезВСХ.Результат, 0) - ЕСТЬNULL(ВРБуд.Результат, 0) + ЕСТЬNULL(ВРПрош.Результат, 0)
         КОНЕЦ) КАК Результат,
      СУММА(ВРБуд.Результат) КАК РезультатБуд,
      СУММА(ВРПрош.Результат) КАК РезультатПрош,
      СУММА(НачисленияБезВСХ.Результат) КАК Сумма,
      ВЫБОР
         КОГДА НачисленияБезВСХ.ВидРасчета.СпособОтраженияВБухучете.СчетДт = &Счет_91_2
            ТОГДА 2
         ИНАЧЕ 1
      КОНЕЦ КАК ПорядокВР
   ИЗ
      (ВЫБРАТЬ
         СУММА(Начисления.Результат) КАК Результат,
         ВЫБОР
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
               ТОГДА "Рабочие"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
               ТОГДА "Руководители"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
               ТОГДА "Служащие"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
               ТОГДА "Специалисты"
         КОНЕЦ КАК Категория,
         Начисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
         Начисления.ВидРасчета КАК ВидРасчета
      ИЗ
         (ВЫБРАТЬ
            ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник,
            СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
            РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
            ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета КАК ВидРасчета
         ИЗ
            РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаКон, ПричинаИзмененияСостояния <> &Увольнение) КАК РаботникиОрганизацийСрезПоследних
               ПО ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
                  И ОсновныеНачисленияРаботниковОрганизаций.Организация = РаботникиОрганизацийСрезПоследних.Организация
         ГДЕ
            ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация
            И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
            И (НЕ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВСХОсн))
            И (НЕ ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме)
            И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В(&ОтобранныеНачисления)
         
         СГРУППИРОВАТЬ ПО
            ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
            РаботникиОрганизацийСрезПоследних.Должность,
            ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации,
            ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета
         
         ОБЪЕДИНИТЬ ВСЕ
         
         ВЫБРАТЬ
            ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник,
            СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат),
            РаботникиОрганизацийСрезПоследних.Должность,
            ДополнительныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации,
            ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета
         ИЗ
            РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
               ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаКон, ПричинаИзмененияСостояния <> &Увольнение) КАК РаботникиОрганизацийСрезПоследних
               ПО ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
                  И ДополнительныеНачисленияРаботниковОрганизаций.Организация = РаботникиОрганизацийСрезПоследних.Организация
         ГДЕ
            ДополнительныеНачисленияРаботниковОрганизаций.Организация = &Организация
            И ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
            И (НЕ ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета В (&ВСХДоп))
            И (НЕ ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме)
         
         СГРУППИРОВАТЬ ПО
            ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник,
            РаботникиОрганизацийСрезПоследних.Должность,
            ДополнительныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации,
            ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета) КАК Начисления
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.БР_ДляДолжностей.СрезПоследних(&ДатаКон, ) КАК БР_ДляДолжностейСрезПоследних
            ПО Начисления.Должность = БР_ДляДолжностейСрезПоследних.Должность
      
      СГРУППИРОВАТЬ ПО
         ВЫБОР
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
               ТОГДА "Рабочие"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
               ТОГДА "Руководители"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
               ТОГДА "Служащие"
            КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
               ТОГДА "Специалисты"
         КОНЕЦ,
         Начисления.ПодразделениеОрганизации,
         Начисления.ВидРасчета) КАК НачисленияБезВСХ
         ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НачисленияБезВСХ.ВидРасчета КАК ВидРасчета,
            НачисленияБезВСХ.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            НачисленияБезВСХ.Категория КАК Категория,
            СУММА(НачисленияБезВСХ.Результат) КАК Результат
         ИЗ
            (ВЫБРАТЬ
               СУММА(Начисления.Результат) КАК Результат,
               ВЫБОР
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
                     ТОГДА "Рабочие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
                     ТОГДА "Руководители"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
                     ТОГДА "Служащие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
                     ТОГДА "Специалисты"
               КОНЕЦ КАК Категория,
               Начисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
               ВЫБОР
                  КОГДА Начисления.ВидРасчета = &ОтпускУчебный
                     ТОГДА &ОплатаОтпускаКалДни
                  ИНАЧЕ Начисления.ВидРасчета
               КОНЕЦ КАК ВидРасчета
            ИЗ
               (ВЫБРАТЬ
                  ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник,
                  СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
                  РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
                  ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                  ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета КАК ВидРасчета
               ИЗ
                  РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
                     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаКон, ПричинаИзмененияСостояния <> &Увольнение) КАК РаботникиОрганизацийСрезПоследних
                     ПО ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
                        И ОсновныеНачисленияРаботниковОрганизаций.Организация = РаботникиОрганизацийСрезПоследних.Организация
               ГДЕ
                  ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация
                  И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачБуд И &ДатаКон
                  И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В(&ОтпускаБудПрошПер)
                  И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение
                  И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало > &ДатаКон
               
               СГРУППИРОВАТЬ ПО
                  ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
                  РаботникиОрганизацийСрезПоследних.Должность,
                  ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации,
                  ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета) КАК Начисления
                  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.БР_ДляДолжностей.СрезПоследних(&ДатаКон, ) КАК БР_ДляДолжностейСрезПоследних
                  ПО Начисления.Должность = БР_ДляДолжностейСрезПоследних.Должность
            
            СГРУППИРОВАТЬ ПО
               ВЫБОР
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
                     ТОГДА "Рабочие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
                     ТОГДА "Руководители"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
                     ТОГДА "Служащие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
                     ТОГДА "Специалисты"
               КОНЕЦ,
               Начисления.ПодразделениеОрганизации,
               ВЫБОР
                  КОГДА Начисления.ВидРасчета = &ОтпускУчебный
                     ТОГДА &ОплатаОтпускаКалДни
                  ИНАЧЕ Начисления.ВидРасчета
               КОНЕЦ) КАК НачисленияБезВСХ
         ГДЕ
            НачисленияБезВСХ.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)
            И НачисленияБезВСХ.Результат <> 0
         
         СГРУППИРОВАТЬ ПО
            НачисленияБезВСХ.ВидРасчета,
            НачисленияБезВСХ.ПодразделениеОрганизации,
            НачисленияБезВСХ.Категория) КАК ВРБуд
         ПО НачисленияБезВСХ.ПодразделениеОрганизации = ВРБуд.ПодразделениеОрганизации
            И НачисленияБезВСХ.Категория = ВРБуд.Категория
            И НачисленияБезВСХ.ВидРасчета = ВРБуд.ВидРасчета
         ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            НачисленияБезВСХ.ВидРасчета КАК ВидРасчета,
            НачисленияБезВСХ.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            НачисленияБезВСХ.Категория КАК Категория,
            СУММА(НачисленияБезВСХ.Результат) КАК Результат
         ИЗ
            (ВЫБРАТЬ
               СУММА(Начисления.Результат) КАК Результат,
               ВЫБОР
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
                     ТОГДА "Рабочие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
                     ТОГДА "Руководители"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
                     ТОГДА "Служащие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
                     ТОГДА "Специалисты"
               КОНЕЦ КАК Категория,
               Начисления.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
               ВЫБОР
                  КОГДА Начисления.ВидРасчета = &ОтпускУчебный
                     ТОГДА &ОплатаОтпускаКалДни
                  ИНАЧЕ Начисления.ВидРасчета
               КОНЕЦ КАК ВидРасчета
            ИЗ
               (ВЫБРАТЬ
                  ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник,
                  СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
                  РаботникиОрганизацийСрезПоследних.Должность КАК Должность,
                  ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
                  ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета КАК ВидРасчета
               ИЗ
                  РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
                     ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаКонПрош, ПричинаИзмененияСостояния <> &Увольнение) КАК РаботникиОрганизацийСрезПоследних
                     ПО ОсновныеНачисленияРаботниковОрганизаций.Сотрудник = РаботникиОрганизацийСрезПоследних.Сотрудник
                        И ОсновныеНачисленияРаботниковОрганизаций.Организация = РаботникиОрганизацийСрезПоследних.Организация
               ГДЕ
                  ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация
                  И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации < &ДатаНач
                  И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В(&ОтпускаБудПрошПер)
                  И РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> &Увольнение
                  И ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало МЕЖДУ &ДатаНач И &ДатаКон
               
               СГРУППИРОВАТЬ ПО
                  ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
                  РаботникиОрганизацийСрезПоследних.Должность,
                  ОсновныеНачисленияРаботниковОрганизаций.ПодразделениеОрганизации,
                  ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета) КАК Начисления
                  ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.БР_ДляДолжностей.СрезПоследних(&ДатаКон, ) КАК БР_ДляДолжностейСрезПоследних
                  ПО Начисления.Должность = БР_ДляДолжностейСрезПоследних.Должность
            
            СГРУППИРОВАТЬ ПО
               ВЫБОР
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Рабочие
                     ТОГДА "Рабочие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Руководители
                     ТОГДА "Руководители"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Служащие
                     ТОГДА "Служащие"
                  КОГДА БР_ДляДолжностейСрезПоследних.КатегорияРаботника = &Специалисты
                     ТОГДА "Специалисты"
               КОНЕЦ,
               Начисления.ПодразделениеОрганизации,
               ВЫБОР
                  КОГДА Начисления.ВидРасчета = &ОтпускУчебный
                     ТОГДА &ОплатаОтпускаКалДни
                  ИНАЧЕ Начисления.ВидРасчета
               КОНЕЦ) КАК НачисленияБезВСХ
         ГДЕ
            НачисленияБезВСХ.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)
            И НачисленияБезВСХ.Результат <> 0
         
         СГРУППИРОВАТЬ ПО
            НачисленияБезВСХ.ВидРасчета,
            НачисленияБезВСХ.ПодразделениеОрганизации,
            НачисленияБезВСХ.Категория) КАК ВРПрош
         ПО НачисленияБезВСХ.ПодразделениеОрганизации = ВРПрош.ПодразделениеОрганизации
            И НачисленияБезВСХ.Категория = ВРПрош.Категория
            И НачисленияБезВСХ.ВидРасчета = ВРПрош.ВидРасчета
   ГДЕ
      (НачисленияБезВСХ.Результат <> 0
            ИЛИ ВРБуд.Результат <> 0
            ИЛИ ВРПрош.Результат <> 0)
   
   СГРУППИРОВАТЬ ПО
      ВЫБОР
         КОГДА НачисленияБезВСХ.ВидРасчета.СпособОтраженияВБухучете.СчетДт = &Счет_91_2
            ТОГДА 2
         ИНАЧЕ 1
      КОНЕЦ,
      ЕСТЬNULL(НачисленияБезВСХ.ПодразделениеОрганизации, ЕСТЬNULL(ВРБуд.ПодразделениеОрганизации, ВРПрош.ПодразделениеОрганизации)),
      ЕСТЬNULL(НачисленияБезВСХ.Категория, ЕСТЬNULL(ВРБуд.Категория, ВРПрош.Категория)),
      ВЫБОР
         КОГДА НачисленияБезВСХ.ВидРасчета В (&ОтобранныеНачисления)
            ТОГДА "Вывлата резерва"
         КОГДА НачисленияБезВСХ.ВидРасчета В (&КомпенсацияОтпуска)
            ТОГДА "Денежная компенсация за неиспользованный отпуск"
         КОГДА НачисленияБезВСХ.ВидРасчета В (&ОтпускУчебный)
            ТОГДА "Отпуск учебный"
         ИНАЧЕ НачисленияБезВСХ.ВидРасчета
      КОНЕЦ) КАК Начисления
ГДЕ
   Начисления.ПодразделениеОрганизации В ИЕРАРХИИ(&ПодразделениеОрганизации)

УПОРЯДОЧИТЬ ПО
   Начисления.ПорядокВР,
   ВидРасчетаНаименование

Klyacksa

Мдам, жестокий запросец.
Хоть версию конфы бы написали... С листа читать трудновато.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

TamKar

Зарплата и Управление Персоналом, редакция 2.5 (2.5.33.3)

cska-fanat-kz

навскидку (действительно слишком много букв!) можно посоветовать проверить консолью запросов каждый из подзапросов...

А также перейти от вложенных запросов к временным таблицам - так лучше основной запрос читается...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Klyacksa

У меня есть предположение, что и временные таблицы там можно обойти, существенно упростив запрос.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

TamKar

спасибо за совет. буду переписывать

Шурыгин Иван Сергеевич

почитал запрос. а какой именно результат вы хотите получить? какого рода данные?
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Теги:

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

Рейтинг@Mail.ru

Поиск