MDX Multi Select 除以 CurrentMember.Properties
MDX Multi Select Divide by CurrentMember.Properties
错误:"The MDX function CURRENTMEMBER failed because the coordinate for the 'YYYYMM' attribute contains a set."
我有一个仅返回单个月数据时有效的计算。我的日历维度包含每年的单个记录(键:YYYYMM),并且包含 "Man Hours" 的 属性。
据我了解,这是由于实施或缺乏多 select 支持所致。
这是 T-SQL 将返回预期值。
SELECT CostPerManHour = SUM(MonthCost) / SUM(ManHours)
FROM (
SELECT
MonthCost = SUM(C.Cost),
Cal.ManHours
FROM dbo.Costs C
JOIN dbo.Calendar Cal ON C.YYYYMM = Cal.YYYYMM
WHERE Cal.YYYYMM BETWEEN 201503 AND 201705
AND C.OtherThing = 'Thing1'
GROUP BY Cal.YYYYMM, Cal.ManHours
) Q
;
MDX:
SELECT [Measures].[Cost Per Man Hour],... ON 0
FROM Metrics
WHERE {
{ [Calendar].[YYYYMM].&[201503] : [Calendar].[YYYYMM].&[201705] }
* { [Other Thing].[Other Thing].&[Thing1] }
};
计算
CREATE MEMBER CURRENTCUBE.[Measures].[Cost Per Man Hour]
AS DIVIDE([Measures].[Cost], [CALENDAR].[YYYYMM].CURRENTMEMBER.PROPERTIES ("Man Hours")),
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'Costs';
试一试:
CREATE MEMBER CURRENTCUBE.[Measures].[Cost Per Man Hour]
AS
DIVIDE(
[Measures].[Cost],
SUM(
existing [Calendar].[YYYYMM].[YYYYMM].Members,
[CALENDAR].[YYYYMM].CURRENTMEMBER.PROPERTIES ("Man Hours")
)
),
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'Costs';
错误:"The MDX function CURRENTMEMBER failed because the coordinate for the 'YYYYMM' attribute contains a set."
我有一个仅返回单个月数据时有效的计算。我的日历维度包含每年的单个记录(键:YYYYMM),并且包含 "Man Hours" 的 属性。
据我了解,这是由于实施或缺乏多 select 支持所致。
这是 T-SQL 将返回预期值。
SELECT CostPerManHour = SUM(MonthCost) / SUM(ManHours)
FROM (
SELECT
MonthCost = SUM(C.Cost),
Cal.ManHours
FROM dbo.Costs C
JOIN dbo.Calendar Cal ON C.YYYYMM = Cal.YYYYMM
WHERE Cal.YYYYMM BETWEEN 201503 AND 201705
AND C.OtherThing = 'Thing1'
GROUP BY Cal.YYYYMM, Cal.ManHours
) Q
;
MDX:
SELECT [Measures].[Cost Per Man Hour],... ON 0
FROM Metrics
WHERE {
{ [Calendar].[YYYYMM].&[201503] : [Calendar].[YYYYMM].&[201705] }
* { [Other Thing].[Other Thing].&[Thing1] }
};
计算
CREATE MEMBER CURRENTCUBE.[Measures].[Cost Per Man Hour]
AS DIVIDE([Measures].[Cost], [CALENDAR].[YYYYMM].CURRENTMEMBER.PROPERTIES ("Man Hours")),
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'Costs';
试一试:
CREATE MEMBER CURRENTCUBE.[Measures].[Cost Per Man Hour]
AS
DIVIDE(
[Measures].[Cost],
SUM(
existing [Calendar].[YYYYMM].[YYYYMM].Members,
[CALENDAR].[YYYYMM].CURRENTMEMBER.PROPERTIES ("Man Hours")
)
),
VISIBLE = 1, ASSOCIATED_MEASURE_GROUP = 'Costs';