Показатели себестоимости образуют иерархию. Под каждый показатель - свой запрос, результаты запросов обрабатываются на клиенте или формируют [временную] таблицу на сервере.
Я не очень понимаю.... Что такое показатель? Как это храниться должно?
Можно подробнее?
Показатель - это то, что выводите в каждой строке отчёта. Поскольку мы говорим о затратах, то каждый вид затрат - это и есть показатель. Чтобы получить данные для расчёта показателя необходимо составить запрос к БД. Сами показатели составляют иерархию. Для рассмотренного ранее примера:
Структура цеховых затрат:
.... 1. Фонд оплаты труда:
.... 1.1. Оплата управленческого персонала;
.... 1.2. Оплата ремонтной службы;
.... 1.3. Оплата уборщиц и подметальщиц;
.... 2. Приобретение оборудования
.... 2.1. Основное технологическое оборудование;
.... 2.2. Вспомогательное оборудование;
.... 2.3. Офисное оборудование и принадлежности;
.... 2.4. Оборудование для пищеблока;
.... 3. Затраты на вспомогательные материалы;
.... 3.1. Затраты на спец. одежду и средства индивидуальной защиты;
.... 3.2. Затраты на протирочные материалы;
.... 3.3. Затраты на смазочные материалы;
.... 3.4. Затраты на ремонтные материалы;
.... 3.4.1. Крепежные изделия;
.... 3.4.2. Подшипники;
.... 3. 4.3. ....
....................
Вот я формирую отчет по затратам на производство паровоза. Как ваш метод будет работать по шагам?
Под каждый из приведённых выше (и прочих) показателей формируется свой запрос. Обходим иерархию показателей, отправляем запросы к БД, формируем строки в таблице или отчёте... Иерархия показателей и есть ничто иное, как структура затрат/себестоимости. По её поводу я Вам настоятельно рекомендую поговорить с экономистами (не с бухгалтерами!). Сами запросы можно хранить в БД, в отдельной таблице, это позволит корректировать запросы при необходимости, без переделки приложений и использовать эти запросы из разных приложений...