事实表中的多个字段引用一维 Qlikview

Posted

技术标签:

【中文标题】事实表中的多个字段引用一维 Qlikview【英文标题】:Multiple fields in fact table referring to one dimension Qlikview 【发布时间】:2017-10-11 21:35:38 【问题描述】:

我是 Qlikview 的新手。 我有一个包含 CheckinDate 和 CheckoutDate 字段的事实表 Fact_Transaction。我有一个维度表 Dim_Time,Date_ID 为 PK。

//-------- Start Multiple Select Statements ------
LOAD "Property_SK",
    TotalNoOfDays,
    PerDayCost,
    TotalCost,
    "Guest_FName",
    "Guest_LName",
    "Host_FName",
    "Host_LName",
    CurrRecInd,
    "User_SK_Guest",
    "User_SK_Host",
    "CheckInDate_SK",
    "CheckOutDate_SK";
SQL SELECT *
FROM "Airbnb database".dbo."Fact_Transaction";

LOAD "Date_ID",
    "Calender_Date",
    "Day_of_Week",
    WeekoftheYear,
    WeekoftheMonth,
    DayoftheMonth,
    CalenderYear,
    CalenderMonth,
    CalenderQuarter,
    FiscalYear,
    FiscalQuarter,
    FiscalMonth;
SQL SELECT *
FROM "Airbnb database".dbo."Dim_Time";


//-------- End Multiple Select Statements ------

现在我想将字段 CheckinDate 和 CheckoutDate 与 Date_ID 上的 Dim_Time 链接起来。 我如何在 Qlikview 中实现相同的功能?有什么想法吗?

【问题讨论】:

【参考方案1】:

作为两个不同的维度(因此是两个不同的概念),我建议创建两个单独的维度表。像这样:

照常加载 Fact 表 为 CheckIn 维度加载 Dim_Time 表,将 Date_ID 列重命名为 CheckInDate_SK 作为其他列,从 WeekoftheMonth 到 CheckInDate_WeekoftheMonth。 (再次)加载 CheckOut 维度的 Dim_Time 表,将 Date_ID 列重命名为 CheckOutDate_SK 作为其他列,从 WeekoftheMonth 到 CheckOutDate_WeekoftheMonth。

您可以通过添加“as”关键字来重命名列,例如:

Date_ID 为 CheckInDate_SK

希望这会有所帮助。

【讨论】:

【参考方案2】:

我建议使用 IntervalMatch 函数:见here 这是一个非常强大的功能。

只需按照帮助中的示例案例 - 它应该与您的案例非常相似。

【讨论】:

以上是关于事实表中的多个字段引用一维 Qlikview的主要内容,如果未能解决你的问题,请参考以下文章

如何使用代码点火器活动记录查询返回一维数组中的表字段

星型模式中的粒度导致事实表中的多个值?

在事务事实表中跟踪多个状态

查询联结表中FK引用的表中的其他字段

数据仓库中的时间维度

My SQL