我的这个查询运行得很好,但是如果我在行中添加另一个维度,它会影响某些设备的结果。 查询的目的是如果设备没有任何Count,则应该检索该设备所属的源Segment Equipment内最后一个设备的Count。 这是完美运行的查询:
WITH MEMBER [Measures].[test] AS
IIF
(
NOT ISEMPTY([Measures].[Count]) ,
([Measures].[Count]),
TAIL(
(EXISTING ([Dim Equipment Attribute].[Source Segment Equipment Id].[Source Segment Equipment Id].Members)
,FILTER(
[Equipment Name].[Equipment Name].Members ,
[Measures].[Count]>0))
,1).Item(0)
)
SELECT
{[Measures].[test]} ON COLUMNS,
([Dim Equipment Attribute].[Equipment Name].[Equipment Name].Members) ON ROWS
FROM [DB DWH]
这是在行上添加维度的查询:
WITH MEMBER [Measures].[test] AS
IIF
(
NOT ISEMPTY([Measures].[Count]) ,
([Measures].[Count]),
TAIL(
(EXISTING ([Dim Equipment Attribute].[Source Segment Equipment Id].[Source Segment Equipment Id].Members)
,FILTER(
[Equipment Name].[Equipment Name].Members ,
[Measures].[Count]>0))
,1).Item(0)
)
SELECT
{[Measures].[test]} ON COLUMNS,
([Dim Equipment Attribute].[Equipment Name].[Equipment
Name].Members, [Dim Equipment Attribute].[Equipment Angle].
[Equipment Angle].Members) ON ROWS
FROM [DB DWH]
我认为现有的导致了问题,但我不知道还能使用什么。这是我处理的第一个 MDX 查询
我尝试更改 EXISTING,但是这样做第一个查询中的结果也是无效的
典型的MDX SELECT 查询如下: 假设您很可能想要交叉连接 普通括号“(”和大括号“{”在 MDX 中表示不同的东西!
SELECT
{
[Measures].[test]
} ON COLUMNS,
{
[Dim Equipment Attribute].[Equipment Name].[Equipment Name].Members
* [Dim Equipment Attribute].[Equipment Angle].[Equipment Angle].Members
} ON ROWS
FROM [DB DWH]
即,在大括号内,您将列出所有维度字段,并使用“*”运算符来表示交叉连接。