Всем доброе утро! В общем,продвинулся вперед,но осталась последняя часть задачи
По регистрам расчёта начисления и удержания сделать выборку:
Сотрудник
Месяц
Сумма начислено
Сумма удержано
Итоговая сумма
Итоговая сумма за прошлый месяц
Сумма увеличилась (Да/нет, относительно предыдущего периода)
Добавить итоги по сотруднику.
На уровне сотрудника рассчитывать только итоговую сумму.
Месяцы выводить по убыванию.
//////
Я сделал запрос,но у меня вызвал проблему пункт Про итоговую сумму за прошлый месяц.
Коллега подсказал,что нужно "Правильно связать сотрудника и дату",но я не совсем понял эту подсказку, можете помочь?
Я помню,что вроде как есть функция с помощью которой можно дату сделать на день,месяц,год меньше,но не уверен.
Вот текст запроса:
По регистрам расчёта начисления и удержания сделать выборку:
Сотрудник
Месяц
Сумма начислено
Сумма удержано
Итоговая сумма
Итоговая сумма за прошлый месяц
Сумма увеличилась (Да/нет, относительно предыдущего периода)
Добавить итоги по сотруднику.
На уровне сотрудника рассчитывать только итоговую сумму.
Месяцы выводить по убыванию.
//////
Я сделал запрос,но у меня вызвал проблему пункт Про итоговую сумму за прошлый месяц.
Коллега подсказал,что нужно "Правильно связать сотрудника и дату",но я не совсем понял эту подсказку, можете помочь?
Я помню,что вроде как есть функция с помощью которой можно дату сделать на день,месяц,год меньше,но не уверен.
Вот текст запроса:
ВЫБРАТЬ
Начисления.ФизическоеЛицо КАК ФизическоеЛицо,
Начисления.Месяц КАК МесяцНачисления,
СУММА(Начисления.Результат) КАК СуммаНачисления
ПОМЕСТИТЬ ВтНачисления
ИЗ
РегистрРасчета.Начисления КАК Начисления
СГРУППИРОВАТЬ ПО
Начисления.ФизическоеЛицо,
Начисления.Месяц
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Удержания.ФизическоеЛицо КАК ФизическоеЛицо,
Удержания.ПериодРегистрации КАК МесяцУдержания,
Удержания.Результат КАК СуммаУдержания
ПОМЕСТИТЬ ВтУдержания
ИЗ
РегистрРасчета.Удержания КАК Удержания
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВтНачисления.ФизическоеЛицо КАК Сотрудник,
ВтНачисления.МесяцНачисления КАК МесяцНачисления,
ВтНачисления.СуммаНачисления КАК СуммаНачисления,
ВтУдержания.СуммаУдержания КАК СуммаУдержания,
ВтНачисления.СуммаНачисления - ВтУдержания.СуммаУдержания КАК ИтогЗаПериод
ИЗ
ВтНачисления КАК ВтНачисления
ЛЕВОЕ СОЕДИНЕНИЕ ВтУдержания КАК ВтУдержания
ПО (ВтНачисления.ФизическоеЛицо = ВтУдержания.ФизическоеЛицо)
И (ВтНачисления.МесяцНачисления = ВтУдержания.МесяцУдержания)
УПОРЯДОЧИТЬ ПО
МесяцНачисления УБЫВ
ИТОГИ
СУММА(ИтогЗаПериод)
ПО
Сотрудник
ПоказатьПрикрепленные файлы:
Задание3.q1c
По теме из базы знаний
Найденные решения
ВЫБРАТЬ
Начисления.ФизическоеЛицо КАК ФизическоеЛицо,
Начисления.Месяц КАК Месяц,
СУММА(Начисления.Результат) КАК СуммаНачислено,
0 КАК СуммаУдержано
ПОМЕСТИТЬ втИсходныеДанные
ИЗ
РегистрРасчета.Начисления КАК Начисления
СГРУППИРОВАТЬ ПО
Начисления.ФизическоеЛицо,
Начисления.Месяц
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Удержания.ФизическоеЛицо,
Удержания.ПериодРегистрации,
0,
Удержания.Результат
ИЗ
РегистрРасчета.Удержания КАК Удержания
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втИсходныеДанные.ФизическоеЛицо КАК ФизическоеЛицо,
втИсходныеДанные.Месяц КАК Месяц,
СУММА(втИсходныеДанные.СуммаНачислено) КАК СуммаНачислено,
СУММА(втИсходныеДанные.СуммаУдержано) КАК СуммаУдержано
ПОМЕСТИТЬ втГруппировка
ИЗ
втИсходныеДанные КАК втИсходныеДанные
СГРУППИРОВАТЬ ПО
втИсходныеДанные.ФизическоеЛицо,
втИсходныеДанные.Месяц
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втГруппировка.ФизическоеЛицо КАК ФизическоеЛицо,
втГруппировка.Месяц КАК Месяц,
втГруппировка.СуммаНачислено КАК СуммаНачислено,
втГруппировка.СуммаУдержано КАК СуммаУдержано,
втГруппировка.СуммаНачислено - втГруппировка.СуммаУдержано КАК ИтоговаяСумма
ПОМЕСТИТЬ втИтогиПоМесяцам
ИЗ
втГруппировка КАК втГруппировка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втИтогиПоМесяцам.ФизическоеЛицо КАК ФизическоеЛицо,
втИтогиПоМесяцам.Месяц КАК Месяц,
втИтогиПоМесяцам.СуммаНачислено КАК СуммаНачислено,
втИтогиПоМесяцам.СуммаУдержано КАК СуммаУдержано,
втИтогиПоМесяцам.ИтоговаяСумма КАК ИтоговаяСумма,
ЕСТЬNULL(втИтогиПоМесяцамПрошлыйМесяц.ИтоговаяСумма, 0) КАК ИтоговаяСуммаЗаПрошлыйМесяц,
ВЫБОР
КОГДА ЕСТЬNULL(втИтогиПоМесяцамПрошлыйМесяц.ИтоговаяСумма, 0) < втИтогиПоМесяцам.ИтоговаяСумма
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК СуммаУвеличилась
ИЗ
втИтогиПоМесяцам КАК втИтогиПоМесяцам
ЛЕВОЕ СОЕДИНЕНИЕ втИтогиПоМесяцам КАК втИтогиПоМесяцамПрошлыйМесяц
ПО втИтогиПоМесяцам.ФизическоеЛицо = втИтогиПоМесяцамПрошлыйМесяц.ФизическоеЛицо
И (втИтогиПоМесяцам.Месяц = ДОБАВИТЬКДАТЕ(втИтогиПоМесяцамПрошлыйМесяц.Месяц, МЕСЯЦ, -1))
ПоказатьОсталось два пункта:
1 - На уровне сотрудника рассчитывать только итоговую сумму.
2 - Месяцы выводить по убыванию
Тут сами справитесь?
(10)Это называется Объединение таблиц. Есть соединение, когда справа или слева к основной таблице присоединяются строки из второй таблицы, а есть объединение, когда вторая таблица располагается снизу.
Разберем на Вашем примере:
Вот тут мы из регистра "Начисления" достаем ФизическоеЛицо, Месяц и СуммаНачислено, и делаем пустую колонку "Сумма удержано" с нулями.
Далее вот в этом фрагменте
Мы снизу к получившейся таблице из регистра "Начисления" присоединяем таблицу из регистра "Удержания". Из таблицы удержания мы достаем колонки ФизическоеЛицо, ПериодРегистрации и СуммаУдержано и делаем пустую колонку "СуммаНачислено", заполняем ее нулями.
В итоге у нас получается таблица с колонками
ФизическоеЛицо|Месяц|СуммаНачислено|СуммаУдержано
Сначала в этой таблице идут строки из начислений
Иванов|01.01.2023|998,87|0
Петров|01.01.2023|98,20|0
Сидоров|01.01.2023|1000,34|0
Игнашевич|01.01.2023|555,55|0
...
Причем в колонке "Сумма удержано" у нас только нули
Далее в итоговой таблице идут строки из удержаний
Иванов|01.01.2023|0|111,11
Петров|01.01.2023|0|222,22
Сидоров|01.01.2023|0|333,33
Игнашевич|01.01.2023|0|444,44
...
Причем "Сумма начислено" у нас везде нулевая.
Получаем таблицу начислений и удержаний
ФизическоеЛицо|Месяц |СуммаНачислено|СуммаУдержано
Иванов |01.01.2023|998,87 |0
Петров |01.01.2023|98,20 |0
Сидоров |01.01.2023|1000,34 |0
Игнашевич |01.01.2023|555,55 |0
Иванов |01.01.2023|0 |111,11
Петров |01.01.2023|0 |222,22
Сидоров |01.01.2023|0 |333,33
Игнашевич |01.01.2023|0 |444,44
Засовываем ее во временную таблицу и во втором запросе пакета выполняем группирову по полям ФизическоеЛицо и Месяц с суммированием полей СуммаНачислено и СуммаУдержано. Получаем исходную для нашего отчета таблицу начислений и удержаний по месяцам и сотрудникам.
Разберем на Вашем примере:
ВЫБРАТЬ
Начисления.ФизическоеЛицо КАК ФизическоеЛицо,
Начисления.Месяц КАК Месяц,
СУММА(Начисления.Результат) КАК СуммаНачислено,
0 КАК СуммаУдержано
ИЗ
РегистрРасчета.Начисления КАК Начисления
Вот тут мы из регистра "Начисления" достаем ФизическоеЛицо, Месяц и СуммаНачислено, и делаем пустую колонку "Сумма удержано" с нулями.
Далее вот в этом фрагменте
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Удержания.ФизическоеЛицо,
Удержания.ПериодРегистрации,
0,
Удержания.Результат
ИЗ
РегистрРасчета.Удержания КАК Удержания
ПоказатьМы снизу к получившейся таблице из регистра "Начисления" присоединяем таблицу из регистра "Удержания". Из таблицы удержания мы достаем колонки ФизическоеЛицо, ПериодРегистрации и СуммаУдержано и делаем пустую колонку "СуммаНачислено", заполняем ее нулями.
В итоге у нас получается таблица с колонками
ФизическоеЛицо|Месяц|СуммаНачислено|СуммаУдержано
Сначала в этой таблице идут строки из начислений
Иванов|01.01.2023|998,87|0
Петров|01.01.2023|98,20|0
Сидоров|01.01.2023|1000,34|0
Игнашевич|01.01.2023|555,55|0
...
Причем в колонке "Сумма удержано" у нас только нули
Далее в итоговой таблице идут строки из удержаний
Иванов|01.01.2023|0|111,11
Петров|01.01.2023|0|222,22
Сидоров|01.01.2023|0|333,33
Игнашевич|01.01.2023|0|444,44
...
Причем "Сумма начислено" у нас везде нулевая.
Получаем таблицу начислений и удержаний
ФизическоеЛицо|Месяц |СуммаНачислено|СуммаУдержано
Иванов |01.01.2023|998,87 |0
Петров |01.01.2023|98,20 |0
Сидоров |01.01.2023|1000,34 |0
Игнашевич |01.01.2023|555,55 |0
Иванов |01.01.2023|0 |111,11
Петров |01.01.2023|0 |222,22
Сидоров |01.01.2023|0 |333,33
Игнашевич |01.01.2023|0 |444,44
Засовываем ее во временную таблицу и во втором запросе пакета выполняем группирову по полям ФизическоеЛицо и Месяц с суммированием полей СуммаНачислено и СуммаУдержано. Получаем исходную для нашего отчета таблицу начислений и удержаний по месяцам и сотрудникам.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ВЫБРАТЬ
Начисления.ФизическоеЛицо КАК ФизическоеЛицо,
Начисления.Месяц КАК Месяц,
СУММА(Начисления.Результат) КАК СуммаНачислено,
0 КАК СуммаУдержано
ПОМЕСТИТЬ втИсходныеДанные
ИЗ
РегистрРасчета.Начисления КАК Начисления
СГРУППИРОВАТЬ ПО
Начисления.ФизическоеЛицо,
Начисления.Месяц
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Удержания.ФизическоеЛицо,
Удержания.ПериодРегистрации,
0,
Удержания.Результат
ИЗ
РегистрРасчета.Удержания КАК Удержания
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втИсходныеДанные.ФизическоеЛицо КАК ФизическоеЛицо,
втИсходныеДанные.Месяц КАК Месяц,
СУММА(втИсходныеДанные.СуммаНачислено) КАК СуммаНачислено,
СУММА(втИсходныеДанные.СуммаУдержано) КАК СуммаУдержано
ПОМЕСТИТЬ втГруппировка
ИЗ
втИсходныеДанные КАК втИсходныеДанные
СГРУППИРОВАТЬ ПО
втИсходныеДанные.ФизическоеЛицо,
втИсходныеДанные.Месяц
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втГруппировка.ФизическоеЛицо КАК ФизическоеЛицо,
втГруппировка.Месяц КАК Месяц,
втГруппировка.СуммаНачислено КАК СуммаНачислено,
втГруппировка.СуммаУдержано КАК СуммаУдержано,
втГруппировка.СуммаНачислено - втГруппировка.СуммаУдержано КАК ИтоговаяСумма
ПОМЕСТИТЬ втИтогиПоМесяцам
ИЗ
втГруппировка КАК втГруппировка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втИтогиПоМесяцам.ФизическоеЛицо КАК ФизическоеЛицо,
втИтогиПоМесяцам.Месяц КАК Месяц,
втИтогиПоМесяцам.СуммаНачислено КАК СуммаНачислено,
втИтогиПоМесяцам.СуммаУдержано КАК СуммаУдержано,
втИтогиПоМесяцам.ИтоговаяСумма КАК ИтоговаяСумма,
ЕСТЬNULL(втИтогиПоМесяцамПрошлыйМесяц.ИтоговаяСумма, 0) КАК ИтоговаяСуммаЗаПрошлыйМесяц,
ВЫБОР
КОГДА ЕСТЬNULL(втИтогиПоМесяцамПрошлыйМесяц.ИтоговаяСумма, 0) < втИтогиПоМесяцам.ИтоговаяСумма
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК СуммаУвеличилась
ИЗ
втИтогиПоМесяцам КАК втИтогиПоМесяцам
ЛЕВОЕ СОЕДИНЕНИЕ втИтогиПоМесяцам КАК втИтогиПоМесяцамПрошлыйМесяц
ПО втИтогиПоМесяцам.ФизическоеЛицо = втИтогиПоМесяцамПрошлыйМесяц.ФизическоеЛицо
И (втИтогиПоМесяцам.Месяц = ДОБАВИТЬКДАТЕ(втИтогиПоМесяцамПрошлыйМесяц.Месяц, МЕСЯЦ, -1))
ПоказатьОсталось два пункта:
1 - На уровне сотрудника рассчитывать только итоговую сумму.
2 - Месяцы выводить по убыванию
Тут сами справитесь?
(10)Это называется Объединение таблиц. Есть соединение, когда справа или слева к основной таблице присоединяются строки из второй таблицы, а есть объединение, когда вторая таблица располагается снизу.
Разберем на Вашем примере:
Вот тут мы из регистра "Начисления" достаем ФизическоеЛицо, Месяц и СуммаНачислено, и делаем пустую колонку "Сумма удержано" с нулями.
Далее вот в этом фрагменте
Мы снизу к получившейся таблице из регистра "Начисления" присоединяем таблицу из регистра "Удержания". Из таблицы удержания мы достаем колонки ФизическоеЛицо, ПериодРегистрации и СуммаУдержано и делаем пустую колонку "СуммаНачислено", заполняем ее нулями.
В итоге у нас получается таблица с колонками
ФизическоеЛицо|Месяц|СуммаНачислено|СуммаУдержано
Сначала в этой таблице идут строки из начислений
Иванов|01.01.2023|998,87|0
Петров|01.01.2023|98,20|0
Сидоров|01.01.2023|1000,34|0
Игнашевич|01.01.2023|555,55|0
...
Причем в колонке "Сумма удержано" у нас только нули
Далее в итоговой таблице идут строки из удержаний
Иванов|01.01.2023|0|111,11
Петров|01.01.2023|0|222,22
Сидоров|01.01.2023|0|333,33
Игнашевич|01.01.2023|0|444,44
...
Причем "Сумма начислено" у нас везде нулевая.
Получаем таблицу начислений и удержаний
ФизическоеЛицо|Месяц |СуммаНачислено|СуммаУдержано
Иванов |01.01.2023|998,87 |0
Петров |01.01.2023|98,20 |0
Сидоров |01.01.2023|1000,34 |0
Игнашевич |01.01.2023|555,55 |0
Иванов |01.01.2023|0 |111,11
Петров |01.01.2023|0 |222,22
Сидоров |01.01.2023|0 |333,33
Игнашевич |01.01.2023|0 |444,44
Засовываем ее во временную таблицу и во втором запросе пакета выполняем группирову по полям ФизическоеЛицо и Месяц с суммированием полей СуммаНачислено и СуммаУдержано. Получаем исходную для нашего отчета таблицу начислений и удержаний по месяцам и сотрудникам.
Разберем на Вашем примере:
ВЫБРАТЬ
Начисления.ФизическоеЛицо КАК ФизическоеЛицо,
Начисления.Месяц КАК Месяц,
СУММА(Начисления.Результат) КАК СуммаНачислено,
0 КАК СуммаУдержано
ИЗ
РегистрРасчета.Начисления КАК Начисления
Вот тут мы из регистра "Начисления" достаем ФизическоеЛицо, Месяц и СуммаНачислено, и делаем пустую колонку "Сумма удержано" с нулями.
Далее вот в этом фрагменте
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Удержания.ФизическоеЛицо,
Удержания.ПериодРегистрации,
0,
Удержания.Результат
ИЗ
РегистрРасчета.Удержания КАК Удержания
ПоказатьМы снизу к получившейся таблице из регистра "Начисления" присоединяем таблицу из регистра "Удержания". Из таблицы удержания мы достаем колонки ФизическоеЛицо, ПериодРегистрации и СуммаУдержано и делаем пустую колонку "СуммаНачислено", заполняем ее нулями.
В итоге у нас получается таблица с колонками
ФизическоеЛицо|Месяц|СуммаНачислено|СуммаУдержано
Сначала в этой таблице идут строки из начислений
Иванов|01.01.2023|998,87|0
Петров|01.01.2023|98,20|0
Сидоров|01.01.2023|1000,34|0
Игнашевич|01.01.2023|555,55|0
...
Причем в колонке "Сумма удержано" у нас только нули
Далее в итоговой таблице идут строки из удержаний
Иванов|01.01.2023|0|111,11
Петров|01.01.2023|0|222,22
Сидоров|01.01.2023|0|333,33
Игнашевич|01.01.2023|0|444,44
...
Причем "Сумма начислено" у нас везде нулевая.
Получаем таблицу начислений и удержаний
ФизическоеЛицо|Месяц |СуммаНачислено|СуммаУдержано
Иванов |01.01.2023|998,87 |0
Петров |01.01.2023|98,20 |0
Сидоров |01.01.2023|1000,34 |0
Игнашевич |01.01.2023|555,55 |0
Иванов |01.01.2023|0 |111,11
Петров |01.01.2023|0 |222,22
Сидоров |01.01.2023|0 |333,33
Игнашевич |01.01.2023|0 |444,44
Засовываем ее во временную таблицу и во втором запросе пакета выполняем группирову по полям ФизическоеЛицо и Месяц с суммированием полей СуммаНачислено и СуммаУдержано. Получаем исходную для нашего отчета таблицу начислений и удержаний по месяцам и сотрудникам.
(12)
(12)
(12)
Это называется Объединение таблиц. Есть соединение, когда справа или слева к основной таблице присоединяются строки из второй таблицы, а есть объединение, когда вторая таблица располагается снизу.
Благодарю! Раньше не видел такого способа соединения. Очень подробное объяснение, наконец-то. Спасибо огромное за Ваше время! Хорошего Вам вечера!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот