Как рассчитать безналоговую сумму продаж на основе полей даты? - PullRequest
0 голосов
/ 03 августа 2020

Мне нужна ваша помощь для решения задачи, которую я предпринял, и я столкнулся с трудностями.

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

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

т.е. Dim_Cities:

CityID, CityName, Area, District.

Dim_Cities:

1, "Athens", "Attiki", "Central Greece".

Кроме того, у меня есть файл / таблица, которая содержит следующую информацию:

ie

[SalesArea]
,[EffectiveFrom_2019]
,[EffectiveTo_2019]
,[VAT_2019]


,[EffectiveFrom_2018]
,[EffectiveTo_2018]
,[VAT_2018]


,[EffectiveFrom_2017]
,[EffectiveTo_2017]
,[VAT_2017]


,[EffectiveFrom_2016_Semester1]
,[EffectiveTo_2016_Semester1]
,[VAT_2016_Semester1]


,[EffectiveFrom_2016_Semester2]
,[EffectiveTo_2016_Semester2]
,[VAT_2016_Semester2]

ie

"Athens", "2019-01-01", "2019-12-31", 0.24,

"2018-01-01", "2018-12-31", 0.24,

"2017-01-01", "2017-12-31", 0.17,

"2016-01-01", "2016-05-31", 0.16,

"2016-01-06", "2016-12-31", 0.24

И, конечно же, есть таблица фактов, которая содержит всю информацию,

т.е.

 FactSales_ID,  CityID, SaleAmount (with VAT), SaleDate_ID.

Вопрос в том, как вычислить для каждого города TAX-Free SalesAmount ", которая соответствует каждой конкретной дате продажи? Другими словами, я думаю, что мне нужно создать функцию, которая вычисляет каждый раз сумму NET, вычитая в каждом случае соответствующую ставку налога на основе найденной даты и города. Может ли кто-нибудь помочь мне или направить меня в этом, пожалуйста?

1 Ответ

0 голосов
/ 10 августа 2020

Я не уверен, спрашиваете ли вы, как запрашивать данные для получения этого результата или как спроектировать хранилище данных, чтобы сделать эти данные доступными, но я надеюсь, что вы спрашиваете, как спроектировать свое хранилище данных как эта информация определенно должна быть предварительно рассчитана и храниться в вашем хранилище данных, а не рассчитываться каждый раз, когда кто-либо хочет сообщить о данных. 1008 * следует обрабатывать в ETL (насколько это возможно), чтобы фактическая отчетность была простой; единственные расчеты в процессе отчетности - это те, которые не могут быть предварительно рассчитаны.

Если ваш CITY Dim равен SCD2 (или может быть сделан как SCD2), я бы добавил ставку НДС в качестве атрибута это Dim - в противном случае вы могли бы сохранить ставку НДС в таблице «worker».

Когда ваш ETL загружает таблицу Fact, вы должны использовать ставку НДС в CITY Dim (или в таблице worker) для расчета Net и Суммы брутто и сохраните их как меры в вашей таблице фактов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...