页面树结构
转至元数据结尾
转至元数据起始

(文档仅供参考)

需求背景:

数据模型由于本身查询的问题,只能固定每月的时间维度为每个月的最后一天,而有些时候月汇总的维度不会在每个月的最后一天,如果财务的截止计算周期在每月28日的时候,如3月29日-4月28日为一个月计算周期,当需月时间维度汇总的时候由于数据模型自动创建时间维度是以每月最后一天,就无法计算出正确的维度值。

解决方案:

按照实际的需求,可以将维度构建为如下形式,如将2023年12月29日的月时间维度归为2024年1月,年时间维度归为2024年来满足这个需求,具体操作方式如下:

1、创建日期维表

参考sql(mysql语法)
select
    distinct date_format(t.`OrderDate`, "%Y-%m-%d") as "日",
    date_format(t.`日期`, "%Y") as "年",
    date_format(t.`日期`, "%Y-%m") as "月"
from
    (
        select
            case
                when date_format(`OrderDate`, "%d") > 28 then DATE_ADD(`OrderDate`, INTERVAL 1 MONTH)
                else `OrderDate`
            end as "日期",
            `OrderDate`
        from
            `northwind`.`orders`
    ) as t


2、日期维表关联回事实表,使用日期字段进行关联原本的数据


3、创建层次结构,拖入日期维表中的年月日作为层次,并且将字段标记为时间层次


4、查询时选用维度为日期表里的时间层次,与正常日期字段创建的时间维度对比如下