【发布时间】:2016-11-02 12:17:27
【问题描述】:
这是我当前的数据模型 -> part of data model
我在创建度量时需要帮助。
我要创建的度量应该显示在某个时间间隔内航行的船舶的总容量,并且能够根据房间类型查看总容量。
我有兴趣获得 DAX 等效项:
SELECT SUM(sc.capacity)
FROM Reporting.Trips t
JOIN Reporting.Dates d ON d.DateId = t.DateId
JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15
OR 每个类型
SELECT SUM(sc.capacity)
FROM Reporting.Trips t
JOIN Reporting.Dates d ON d.DateId = t.DateId
JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 and sc.CabinTypeId = 11
我尝试以这种方式定义度量:
Total Rooms:=CALCULATE ( SUM ( 'Ship Capacities'[Ship Capacity] ) )
我已经看到这会输出 T-SQL 等价物:
SELECT SUM(Capacity)
FROM
(
SELECT DISTINCT sc.*
FROM Reporting.Trips t
JOIN Reporting.Dates d ON d.DateId = t.DateId
JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15
) x
OR 每个类型
SELECT SUM(Capacity)
FROM
(
SELECT DISTINCT sc.*
FROM Reporting.Trips t
JOIN Reporting.Dates d ON d.DateId = t.DateId
JOIN Reporting.ShipCapacities sc on sc.ShipId = t.ShipId
WHERE d.FiscalYear= 2017 AND d.FiscalWeek=15 and sc.CabinTypeId = 11
) x
这些是查询结果->Query results
谢谢。
【问题讨论】:
-
您确定这是您尝试的措施的结果吗?除非您使用显式过滤器,否则它似乎不会过滤 Year 和 FiscalWeek。是这个问题吗?
-
是的,我比较了这些值。我正在使用显式过滤器。我有一个参数表,其中有一个表格,包含在模型中。这会以这种方式过滤度量:Dates[Fiscal Year]=VALUES(Parameters[Current Fiscal Year]), Dates[Fiscal Week]=VALUES(Parameters[Current Fiscal Week])。
-
我猜在多对多关系的情况下这对 DAX 来说是个问题。从 Trips 到 Ships 存在多对一的关系。从船舶到船舶容量存在一对多的关系。我正在寻找一种方法来使用我想要的计算,而不是像 DAX 目前那样。
-
您的预期结果是什么?你能添加示例数据吗?
-
我添加了一个带有查询结果的打印屏幕(在帖子的末尾)。