от суммы нарастающим итогом — работает аналогично

от суммы нарастающим итогом — работает аналогично

Как верно заполнить декларацию по налогу на прибыль нарастающим итогом?

Что такое нарастающий итог при расчете налога на прибыль?

Налоговой базой по налогу на прибыль является денежное выражение прибыли организации (п. 1 ст. 274 НК РФ).

При определении налоговой базы облагаемая прибыль определяется нарастающим итогом с начала налогового периода (п. 7 ст. 274 НК РФ). Исходя из базы за год исчисляется налог.

Авансы по итогам отчетных периодов исчисляются исходя из прибыли, рассчитанной нарастающим итогом с начала налогового периода до окончания отчетного периода (п. 2 ст. 286 НК РФ). Нарастающий итог означает, что прибыль отчетного квартала определяется исходя из доходов и расходов, полученных/понесенных с начала года до отчетной даты. То есть она фактически включает в себя и прибыль/убыток прошлого отчетного периода, и прибыль/убыток текущего.

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

Про нарастающий итог в другом отчете читайте в материале «6-НДФЛ заполняется нарастающим итогом с начала года».

Пример расчета налоговой базы

Поясним сказанное на примере.

Допустим, отчетными периодами для организации являются квартал, полугодие и 9 месяцев.

За I квартал ее доходы составили 900 тыс. рублей, а расходы — 750 тыс. рублей.

За II квартал: доходы — 600 тыс., расходы 800 тыс. рублей соответственно.

За III квартал: 1 млн и 700 тыс. рублей.

За IV квартал — 700 тыс. и 800 тыс.

Представим расчет налоговой базы в таблице:

I квартал

Полугодие

9 месяцев

Год

Доходы, тыс.

(900 + 600 + 1 000)

(900 + 600 + 1000 + 700)

Расходы, тыс.

(750 + 800 + 700 + 800)

Финрезультат, тыс.

Таким образом, в течение года организация получала как прибыль, так и убыток, но в результате нарастающим итогом получена прибыль.

Что в декларации?

Декларация по налогу на прибыль также составляется нарастающим итогом с начала года (п. 2.1 Порядка заполнения, утв. приказом ФНС России от 23.09.2019 № ММВ-7-3/475@).

Если вам нужен образец заполнения декларации по налогу на прибыль за 3 квартал/9 месяцев 2021 года, переходите к образцу от экспертов КонсультантПлюс. Это можно сделать бесплатно, получив пробный тестовый доступ к К+.

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

Сумма налога (аванса) к уплате показывается за вычетом платежей предыдущего отчетного периода. В итоге в бюджет идет разница между текущим платежом и платежом предыдущего отчетного периода.

Если у вас есть доступ к КонсультантПлюс, проверьте правильно ли вы заполнили декларацию по налогу на прибыль. Если доступа нет, получите пробный онлайн-доступ к правовой системе бесплатно.

Рекомендации по составлению и пример заполнения декларации по налогу на прибыль ищите здесь.

Итоги

Исчисление налога нарастающим итогом означает, что расчет нужно вести исходя из доходов и расходов, полученных (осуществленных) с 1 января по отчетную дату. По этому же принципу заполняется налоговая декларация. Нарастает и сумма налога к уплате, т. к. при ее определении учитываются платежи предыдущих отчетных периодов.

Налог на прибыль нарастающим итогом

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

А затем в конце года подводится общий итог. Переплаты в случае низкой суммы годовой прибыли возвращаются, недостающая сумма добавляется. Применяют такой способ налоговых расчетов на ОСНО (общей системе налогообложения).

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

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

Как рассчитывают налог на доходы нарастающим итогом

Эта схема предполагает суммирование прибыли от всех видов деятельности фирмы, которую определяют каждый квартал или месяц. Одновременно складывают и расходы, отдельно прямые и косвенные.

В начале следующего года с учетом прямых расходов можно получить сумму чистой прибыли, как разницу между прибылью и прямыми расходами. Это и будет облагаемая база для окончательного исчисления налога. Он рассчитывается по ставке 20% с прибыли: 17% в региональную казну, 3% в федеральную. Такое распределение средств будет действовать до 2024 года. В ряде случаев процент может снижаться.

База для налога может уменьшаться за счет расходов на:

  • зарплату для сотрудников;
  • восстановительные работы, связанные с амортизацией;
  • аренду транспорта и производственных помещений;
  • закупку сырья, баз данных и программ;
  • выплату процентов по задолженности;
  • страховые взносы;
  • научно-исследовательские работы;
  • рекламу (до 1% от чистой выручки).

Суммы авансовых платежей рассчитываются по результатам предыдущего года. Если в 1 квартале фирма получила убытки вместо прибыли, а в 2, 3 и 4 была прибыль, то первый авансовый платеж будут использоваться для расчетов с налоговыми органами за 3-й квартал и год. А по нарастающему итогу 2-го квартала аванса не будет, потому что в предыдущий отчетный период не было дохода.

Возьмем другой пример. В компании «Ромашка» по итогам предыдущего года определен платеж на первый квартал 21 000 р., то есть по 7000 р. на месяц. Получена чистая прибыль по кварталам:

  1. 105 000 р.
  2. 105 000 р.
  3. 210 000 р.
  4. 126 000 р.

Итоговая прибыль за год — 526 000 р. С нее положен налог по ставке 20%: 526 000 р. * 0,2 = 105 200 р. Авансовые платежи за 6 и 9 месяцев будут такими же, как и за первые 3, потому что финансовые результаты в предыдущие отчетные периоды одинаковые. Получается 21 000 р. * 3 = 63 000 р. Остается вписать в январскую декларацию остаток суммы: 105 200 р. – 63 000 р. = 42 200 р.

В какие сроки сдают отчеты по налогу на доходы

Текущую отчетность по налогу при его расчете нарастающим итогом по кварталам сдают до 28 числа в апреле, июле и октябре. Итоговая декларация с окончательной суммой налоговых отчислений с прибыли должна быть сдана до 28 марта следующего года.

Уменьшить итоговую сумму налога можно будет компаниям, которые в течение этого отчетного периода:

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

При расчете налога не учитывают ряд финансовых поступлений, таких как договорные предоплаты, пополнение уставного капитала, перечисление задатков или залогов, комиссионные начисления, списание долгов.

Для расчета налогов организаций, работающих на специальных режимах налогообложения, применяются другие правила и ставки. Об этих системах вы можете узнать здесь. Подробнее об ОСНО, ее преимуществах и недостатках можете почитать тут.

Поручите задачу профессионалам. Юристы выполнят заказ по стоимости, которую вы укажите. Вам не придётся изучать законы, читать статьи и разбираться в вопросе самим.

Все данные в отчёте показываются нарастающим итогом с начала года;

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

А затем в конце года подводится общий итог. Переплаты в случае низкой суммы годовой прибыли возвращаются, недостающая сумма добавляется. Применяют такой способ налоговых расчетов на ОСНО (общей системе налогообложения).

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

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

Что такое нарастающий итог при расчете налога на прибыль?

Налоговой базой по налогу на прибыль является денежное выражение прибыли организации (п. 1 ст. 274 НК РФ).
При определении налоговой базы облагаемая прибыль определяется нарастающим итогом с начала налогового периода (п. 7 ст. 274 НК РФ). Исходя из базы за год исчисляется налог.

Авансы по итогам отчетных периодов исчисляются исходя из прибыли, рассчитанной нарастающим итогом с начала налогового периода до окончания отчетного периода (п. 2 ст. 286 НК РФ). Нарастающий итог означает, что прибыль отчетного квартала определяется исходя из доходов и расходов, полученных/понесенных с начала года до отчетной даты. То есть она фактически включает в себя и прибыль/убыток прошлого отчетного периода, и прибыль/убыток текущего.

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

Про нарастающий итог в другом отчете читайте в материале «6-НДФЛ заполняется нарастающим итогом с начала года».

Скема

Важные нюансы заполнения декларации

  1. Титул содержит сведения об организации; правопреемники реорганизованных компаний указывают ИНН и КПП, присвоенные до реорганизации. Коды форм реорганизации и код ликвидации указаны в приложении №1 к порядку заполнения декларации.
  2. Два дополнительных листа — 08 и 09. Лист 08 заполняют организации, которые скорректировали (занизили) налог на прибыль из-за использования цен ниже рыночных в сделках с зависимыми контрагентами. Раньше эта информация размещалась в приложении 1 к л. 02.
  3. Лист 09 и приложение 1 к нему предназначены для заполнения контролирующими лицами при учете доходов контролируемых иностранных компаний.
  4. Лист 02 содержит поля для кодов налогоплательщика, в том числе для нового кода налогоплательщика 6, который указывают резиденты территорий опережающего социально-экономического развития. Также в нем есть строки для торгового сбора, уменьшающего платеж, и поля, заполняемые участниками региональных инвестиционных проектов.
  5. В листе 03 указана действующая ставка с дивидендов 13%. В разделе «Б» в поле для вида дохода теперь проставляются коды:
      1 — если доходы облагаются по ставке, предусмотренной пп. 1 п. 4 ст. 284 НК РФ;
  6. 2 — если доходы облагаются по ставке, предусмотренной пп. 2 п. 4 ст. 284 НК РФ.
  7. Заполнение декларации по налогу на прибыль за 2021 год по строкам 241 и 242 происходит путем отражения в них отчислений на формирование имущества для уставной деятельности и страхового резерва, отдельных строк для отражения убытков — текущих или переносимых на будущие периоды — на этом листе нет.
  8. Для отражения внереализационного дохода после самостоятельной корректировки налоговой базы по контролируемым сделкам предназначен отдельный лист 08.
  9. В приложении 2 к л. 08 есть поле для указания кодов налогоплательщиков.

Пример расчета налоговой базы

Поясним сказанное на примере.

Допустим, отчетными периодами для организации являются квартал, полугодие и 9 месяцев.

За I квартал ее доходы составили 900 тыс. рублей, а расходы — 750 тыс. рублей.

За II квартал: доходы — 600 тыс., расходы 800 тыс. рублей соответственно.

За III квартал: 1 млн и 700 тыс. рублей.

За IV квартал — 700 тыс. и 800 тыс.

Представим расчет налоговой базы в таблице:

I кварталПолугодие9 месяцевГод
Доходы, тыс.9001500

(900 + 600 + 1 000)

(900 + 600 + 1000 + 700)

(750 + 800 + 700 + 800)

Таким образом, в течение года организация получала как прибыль, так и убыток, но в результате нарастающим итогом получена прибыль.

См. также: «Как рассчитывается прибыль до налогообложения (формула)?».

Особенности заполнения уточненной декларации

Уточненная декларация понадобится, если в расчетах обнаружится ошибка, и налог на прибыль с первого раза не удалось высчитать верно. Не ошибиться поможет пошаговое заполнение для чайников декларации на прибыль 2021 года — для «уточненки» действуют аналогичные правила. В уточненной декларации указывают сумму с учетом обнаруженной ошибки. Если сумма налога при первом расчете занижена, то вместе с подачей «уточненки» необходимо доплатить разницу в бюджет и перечислить пени.

Заполнить декларацию в онлайн-сервисах и посмотреть пошаговое заполнение отчета за 1-й квартал 2021 года онлайн можно на сайтах разработчиков бухгалтерского ПО — «Мое дело», «Контур», «Небо» и других. Некоторые сайты позволяют это делать свободно, но обычно сервисы требуют небольшую плату (до 1000 рублей).

В 1998 году закончила КГАУ, экономический факультет по специальности бухгалтер. В 2006 году ТНУ, юридический факультет по специальности гражданское и предпринимательское право. Опыт работы бухгалтером с 1998 по 2007 год. Пишу статьи с 2012 года

Все статьи автора

Что в декларации?

Декларация по налогу на прибыль также составляется нарастающим итогом с начала года (п. 2.1 Порядка заполнения, утв. приказом ФНС России от 23.09.2019 № ММВ-7-3/[email protected]).

Важно! Декларацию за 2021 год нужно сдать по новой форме.

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

Сумма налога (аванса) к уплате показывается за вычетом платежей предыдущего отчетного периода. В итоге в бюджет идет разница между текущим платежом и платежом предыдущего отчетного периода.

Если у вас есть доступ к КонсультантПлюс, проверьте правильно ли вы заполнили декларацию по налогу на прибыль. Если доступа нет, получите пробный онлайн-доступ к правовой системе бесплатно.

Рекомендации по составлению и пример заполнения декларации по налогу на прибыль ищите здесь.

Вариант 1: за квартал

ООО «Альфа» было создано в начале 2021 года. Новая компания будет перечислять авансы поквартально до тех пор, пока не превысит лимит прибыли. Внутри года будет 3 платежа — по итогам I квартала, 6 и 9 месяцев. А в начале следующего года компания должна будет посчитать, сколько налога нужно доплатить.

Аванс считается так: База за период * 20% — Сумма аванса прошлого периода текущего года. Уплачивается авансовый платеж за квартал до 28 числа месяца, который идет за его окончанием. Как нужно посчитать авансы и налог для компании из примера, показано в Таблице 1. Сумма к уплате разбита на части, которые нужно перечислить в разные бюджеты.

Таблица 1. Расчёт авансов для ООО «Альфа» за 2019 год

(21 000 / 119 000)

(39 000 / 221 000)

Итоги

Исчисление налога нарастающим итогом означает, что расчет нужно вести исходя из доходов и расходов, полученных (осуществленных) с 1 января по отчетную дату. По этому же принципу заполняется налоговая декларация. Нарастает и сумма налога к уплате, т. к. при ее определении учитываются платежи предыдущих отчетных периодов.

  • Налоговый кодекс РФ
  • Приказ ФНС России от 23.09.2019 № ММВ-7-3/[email protected]

Более полную информацию по теме вы можете найти в КонсультантПлюс. Пробный бесплатный доступ к системе на 2 дня.

Обновленная форма отчетности

ФНС изменила форму декларации по налогу на прибыль Приказом от 11.09.2020 №ЕД-7-3/[email protected]

Поправки связаны с изменениями в законодательстве и Налоговом кодексе РФ с момента утверждения прежнего бланка. В отчете изменили:

  • лист 02 «Расчет налога»;
  • приложение №4 к л. 02 «Расчет суммы убытка или части убытка, уменьшающего налоговую базу»;
  • приложение №5 к л. 02 «Расчет распределения авансовых платежей и налога на прибыль организаций в бюджет субъекта Российской Федерации организацией, имеющей обособленные подразделения»;
  • раздел А «Расчет инвестиционного налогового вычета из авансовых платежей и налога, подлежащих зачислению в бюджет субъекта РФ» приложения №7 к л. 02 «Расчет инвестиционного налогового вычета»;
  • раздел Г «Расчет уменьшения суммы авансовых платежей и налога на прибыль организаций, подлежащих зачислению в федеральный бюджет, при применении налогоплательщиком инвестиционного налогового вычета» приложения №7 к л. 02 «Расчет инвестиционного налогового вычета»;
  • лист 04 «Расчет налога на прибыль организаций с доходов, исчисленного по ставкам, отличным от ставки, указанной в пункте 1 статьи 284 НК РФ»;
  • страница со штрихкодом «00214339» в листе 08 «Доходы и расходы налогоплательщика, осуществившего самостоятельную (симметричную, обратную) корректировку»;
  • приложение №2 к декларации.

Штрихкоды бланка ФНС обновила тоже. В 2021 году налоговая декларация по налогу на прибыль организации предусматривает льготный порядок налогообложения для:

  • резидентов Арктики;
  • IT-компаний;
  • компаний, перерабатывающих углеводород в продукты нефтехимии и производящих сжиженный природный газ.

Как посчитать сумму одним кликом.

Предположим, имеется таблица, в которой записана выручка по нескольким отделам. Нужно быстро посмотреть общие продажи по одному из них.

Просто нажмите на букву столбца и взгляните на строку состояния Microsoft Excel, чтобы увидеть общее количество выбранных ячеек и сумму их значений.

Будучи очень быстрым, этот метод не позволяет копировать итоговые цифры – можно только посмотреть.

Ввод функции СУММ вручную.

Самый традиционный способ создать формулу в MS Excel – ввести функцию с клавиатуры. Как обычно, выбираем нужную ячейку и вводим знак =. Затем начинаем набирать СУММ. По первой же букве «С» раскроется список доступных функций, из которых можно сразу выбрать нужную.

Теперь определите диапазон с числами, которые вы хотите сложить, при помощи мыши или же просто введите его с клавиатуры. Если у вас большая область данных для расчетов, то, конечно, руками указать её будет гораздо проще (например, B2:B300). Нажмите Enter.

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

Правила использования формулы суммы в Excel (синтаксис):

У нее имеется один обязательный аргумент: число1.

Есть еще и необязательные аргументы (заключенные в квадратные скобки): [число2], ..

Они могут быть числами, ссылками на ячейки, диапазонами, массивами и константами в любой комбинации. Допускается обрабатывать до 255 отдельных аргументов.

К примеру, в выражении =СУММ(D2:D13) только один аргумент — ссылка на ячейки D2:D13.

Кстати, в этом случае также имеется возможность воспользоваться автосуммированием.

Нарастающий итог в SQL

Нарастающий (накопительный) итог долго считался одним из вызовов SQL. Что удивительно, даже после появления оконных функций он продолжает быть пугалом (во всяком случае, для новичков). Сегодня мы рассмотрим механику 10 самых интересных решений этой задачи – от оконных функций до весьма специфических хаков.

В электронных таблицах вроде Excel нарастающий итог вычисляется очень просто: результат в первой записи совпадает с её значением:

… а затем мы суммируем текущее значение и предыдущий итог.

Появление в таблице двух и более групп несколько усложняет задачу: теперь мы считаем несколько итогов (для каждой группы отдельно). Впрочем, и здесь решение лежит на поверхности: необходимо каждый раз проверять, к какой группе принадлежит текущая запись. Click and drag, и работа выполнена:

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

Но что SQL? Очень долго в нём не было нужного функционала. Необходимый инструмент – оконные функции – впервые появился только стандарте SQL:2003. К этому моменту они уже были в Oracle (версия 8i). А вот реализация в других СУБД задержалась на 5-10 лет: SQL Server 2012, MySQL 8.0.2 (2018 год), MariaDB 10.2.0 (2017 год), PostgreSQL 8.4 (2009 год), DB2 9 для z/OS (2007 год), и даже SQLite 3.25 (2018 год).

1. Оконные функции

Оконные функции – вероятно, самый простой способ. В базовом случае (таблица без групп) мы рассматриваем данные, отсортированные по дате:

… но нас интересуют только строки до текущей:

В конечном итоге, нам нужна сумма с этими параметрами:

А полный запрос будет выглядеть так:

В случае нарастающего итога по группам (поле grp ) нам требуется только одна небольшая правка. Теперь мы рассматриваем данные как разделённые на «окна» по признаку группы:

Чтобы учесть это разделение необходимо использовать ключевое слово partition by :

И, соответственно, считать сумму по этим окнам:

Тогда весь запрос преобразуется таким образом:

Производительность оконных функций будет зависеть от специфики вашей СУБД (и её версии!), размеров таблицы, и наличия индексов. Но в большинстве случаев этот метод будет самым эффективным. Тем не менее, оконные функции недоступны в старых версиях СУБД (которые ещё в ходу). Кроме того, их нет в таких СУБД как Microsoft Access и SAP/Sybase ASE. Если необходимо вендоро-независимое решение, следует обратить внимание на альтернативы.

2. Подзапрос

Как было сказано выше, оконные функции были очень поздно введены в основных СУБД. Эта задержка не должна удивлять: в реляционной теории данные не упорядочены. Куда больше духу реляционной теории соответствует решение через подзапрос.

Такой подзапрос должен считать сумму значений с датой до текущей (и включая текущую): .

Что в коде выглядит так:

Чуть более эффективным будет решение, в котором подзапрос считает итог до текущей даты (но не включая её), а затем суммирует его со значением в строке:

В случае нарастающего итога по нескольким группам нам необходимо использовать коррелированный подзапрос:

Условие g.grp = t2.grp проверяет строки на вхождение в группу (что, в принципе, сходно с работой partition by grp в оконных функциях).

3. Внутреннее соединение

Поскольку подзапросы и джойны взаимозаменяемы, мы легко можем заменить одно на другое. Для этого необходимо использовать Self Join, соединив два экземпляра одной и той же таблицы:

Как можно заметить, условие фильтрации в подзапросе t2.dt <= s.dt стало условием соединения. Кроме того, чтобы использовать агрегирующую функцию sum() нам необходима группировка по дате и значению group by s.dt, s.val .

Точно также можно сделать для случая с разными группами grp :

4. Декартово произведение

Раз уж мы заменили подзапрос на join, то почему бы не попробовать декартово произведение? Это решение потребует только минимальных правок:

Или для случая с группами:

Перечисленные решения (подзапрос, inner join, cartesian join) соответсвуют SQL-92 и SQL:1999, а потому будут доступны практически в любой СУБД. Основная проблема всех этих решений в низкой производительности. Это не велика беда, если мы материализуем таблицу с результатом (но ведь всё равно хочется большей скорости!). Дальнейшие методы куда более эффективны (с поправкой на уже указанные специфику конкретных СУБД и их версий, размер таблицы, индексы).

5. Рекурсивный запрос

Один из более специфических подходов – это рекурсивный запрос в common table expression. Для этого нам необходим «якорь» – запрос, возвращающий самую первую строку:

Затем к «якорю» с помощью union all присоединяются результаты рекурсивного запроса. Для этого можно опереться на поле даты dt , прибавляя у нему по одному дню:

Часть кода, добавляющая один день, не универсальна. Например, это r.dt = dateadd(day, 1, cte.dt) для SQL Server, r.dt = cte.dt + 1 для Oracle, и т.д.

Совместив «якорь» и основной запрос, мы получим окончательный результат:

Решение для случая с группами будет ненамного сложнее:

6. Рекурсивный запрос с функцией row_number()

Предыдущее решение опиралось на непрерывность поля даты dt с последовательным приростом на 1 день. Мы избежать этого, используя оконную функцию row_number() , которая нумерует строки. Конечно, это нечестно – ведь мы собрались рассматривать альтернативы оконным функциям. Тем не менее, это решение может быть своего рода proof of concept: ведь на практике может быть поле, заменяющее номера строк (id записи). Кроме того, в SQL Server функция row_number() появилась раньше, чем была введена полноценная поддержка оконных функций (включая sum() ).

Итак, для рекурсивного запроса с row_number() нам понадобится два СТЕ. В первом мы только нумеруем строки:

… и если номер строки уже есть в таблице, то можно без него обойтись. В следующем запросе обращаемся уже к cte1 :

А целиком запрос выглядит так:

… или для случая с группами:

7. Оператор CROSS APPLY / LATERAL

Один из самых экзотических способов расчёта нарастающего итога – это использование оператора CROSS APPLY (SQL Server, Oracle) или эквивалентного ему LATERAL (MySQL, PostgreSQL). Эти операторы появились довольно поздно (например, в Oracle только с версии 12c). А в некоторых СУБД (например, MariaDB) их и вовсе нет. Поэтому это решение представляет чисто эстетический интерес.

Функционально использование CROSS APPLY или LATERAL идентично подзапросу: мы присоединяем к основному запросу результат вычисления:

… что целиком выглядит так:

Похожим будет и решение для случая с группами:

Итого: мы рассмотрели основные платформо-независимые решения. Но остаются решения, специфичные для конкретных СУБД! Поскольку здесь возможно очень много вариантов, остановимся на нескольких наиболее интересных.

8. Оператор MODEL (Oracle)

Оператор MODEL в Oracle даёт одно из самых элегантных решений. В начале статьи мы рассмотрели общую формулу нарастающего итога:

MODEL позволяет реализовать эту формулу буквально один к одному! Для этого мы сначала заполняем поле total значениями текущей строки

… затем рассчитываем номер строки как row_number() over (order by dt) as rn (или используем готовое поле с номером, если оно есть). И, наконец, вводим правило для всех строк, кроме первой: total[rn >= 2] = total[cv() — 1] + val[cv()] .

Функция cv() здесь отвечает за значение текущей строки. А весь запрос будет выглядеть так:

9. Курсор (SQL Server)

Нарастающий итог – один из немногих случаев, когда курсор в SQL Server не только полезен, но и предпочтителен другим решениям (как минимум до версии 2012, где появились оконные функции).

Реализация через курсор довольно тривиальна. Сначала необходимо создать временную таблицу и заполнить её датами и значениями из основной:

Затем задаём локальные переменные, через которые будет происходить обновление:

После этого обновляем временную таблицу через курсор:

И, наконец, получем нужный результат:

10. Обновление через локальную переменную (SQL Server)

Обновление через локальную переменную в SQL Server основано на недокументированном поведении, поэтому его нельзя считать надёжным. Тем не менее, это едва ли не самое быстрое решение, и этим оно интересно.

Создадим две переменные: одну для нарастающих итогов и табличную переменную:

Сначала заполним @tv данным из основной таблицы

Затем табличную переменную @tv обновим, используя @VarTotal :

… после чего получим окончательный результат:

Резюме: мы рассмотрели топ 10 способов расчёта нарастающего итога в SQL. Как можно заметить, даже без оконных функций эта задача вполне решаема, причём механику решения нельзя назвать сложной.

Пример определения границ групп
ABC-анализа методом сумм

Продолжим пример ABC-анализа ассортимента и определим границы групп методом сумм.

В предыдущем примере по рекомендуемым значениям границ:

  • Группа A — 80% от выручки
  • Группа B — 15% от выручки
  • Группа C — 5% от выручки

Получилось разбиение на группы

В методе сумм границы определяются по значению суммы двух показателей: доля по объему нарастающим итогом и доля по количеству нарастающим итогом.

  • Группа A. Нижняя граница
    (Доля по объему + Доля по количеству) = 100%
  • Группа B. Нижняя граница
    (Доля по объему + Доля по количеству) = 145%
  • Группа C. Все оставшееся.

Вычислим долю по количеству и долю по количеству нарастающим итогом.

Вычислим сумму долей нарастающим итогом и поделим на группы. Группа A зеленая, B голубая, C желтая.

Видим, что группа A не изменилась, B уменьшилась на два наименования, соответственно C увеличилась.

В предыдущем примере с рекомендуемыми долями получилось:

  • Группа A79% выручки, 23.3% наименований
  • Группа B16% выручки, 33.3% наименований
  • Группа C5% выручки, 43.3% наименований

В этом примере с границами по методу сумм:

  • Группа A79% выручки, 23.3% наименований
  • Группа B15% выручки, 26.7% наименований
  • Группа C6% выручки, 50.3% наименований

Избавьтесь от утомительных
расчетов с помощью
этих Excel-таблиц >>>

  1. Платежный календарь
  2. Расчет себестоимости
  3. Расчет инвестиционных проектов
  4. Финансовый анализ
  5. Точка безубыточности. Рентабельность продаж
    Посмотрите подробнее…

Таблицы отдельно

Платежный календарь. График и прогноз платежей и поступлений

  • Платежные Календари на месяц, 3 месяца и год
  • Деб.и Кред. задолженность
  • Отсрочка, просроченные, с наступающим сроком
  • Контроль оплаты
  • Расчет ожидаемого остатка
  • Кассовый разрыв
    Посмотрите подробнее…


Расчет себестоимости и рентабельности продукции (услуг)

  • Себестоимость
  • Рентабельность
  • Маржинальный анализ
  • Точка безубыточности
  • Расходы в 10 валютах
    Посмотрите подробнее…


Расчет инвестиционных проектов

  • Дисконтир. потоки
  • WACC, NPV, IRR, ROI, PI
  • Срок окупаемости
  • Устойчивость проекта
  • Расчет и Сравнение семи проектов
    Посмотрите подробнее…


Финансовый анализ МСФО

  • Вертикальный и горизонтальный Анализ баланса и P&L
  • Расчет 36 показателей
  • Динамика за 5 периодов
  • Риск банкротства
  • ДДС прямым и косвенным методом
  • Отчет об источниках и использовании денежных средств
    Посмотрите подробнее…


Финансовый анализ РСБУ (Россия)

  • Вертикальный и горизонтальный Анализ баланса и ОПУ
  • Расчет 70 показателей
  • Динамика за 8 периодов
  • Риск банкротства
    Посмотрите подробнее…


Точка безубыточности. Рентабельность продаж

  • Расчет доходности при большом ассортименте
  • Прибыль
  • Наценка
  • Минимальная наценка
  • Маржинальный анализ
  • Точка безубыточности
    Посмотрите подробнее…


Оценка стоимости бизнеса

  • Все три основных подхода
  • Доходный
  • Рыночный (сравнительный)
  • Затратный (имущественный)
    Посмотрите подробнее…


Диаграмма Ганта. С семью дополнительными полезными функциями

  • Позволяет назначать ответственных
  • Контролировать выполнение этапов
  • Строит диаграмму ответственных
    Посмотрите подробнее…

Посмотрите полный список таблиц >>>

Разработка Excel-таблиц
экономической и управленческой
тематики. Условия тут >>>

Читайте также  НДС налогового агента: проводки
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Adblock
detector
Для любых предложений по сайту: [email protected]