我想让客户在两个mdx查询中交叉。
1
SELECT
[Measures].[Cs] ON 0
,NonEmpty([Customers].[Customer].MEMBERS) ON 1
FROM [sfe cube]
WHERE
(
[Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
,[Materials].[Brand].&[Coca-Cola]
);
2
SELECT
[Measures].[Cs] ON 0
,NonEmpty([Customers].[Customer].MEMBERS) ON 1
FROM [sfe cube]
WHERE
(
[Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
,[Materials].[Brand].&[Fanta Orange CSD]
);
我尝试的mdx
脚本:
SELECT
{} ON COLUMNS,
INTERSECT(
( Select [Measures].[Cs] on 0,
nonempty([Customers].[Customer].members) on 1
from [sfe cube]
WHERE ([Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
,[Materials].[Brand].&[Coca-Cola])
)
,
( Select [Measures].[Cs] on 0,
nonempty([Customers].[Customer].members) on 1
from [sfe cube]
WHERE ([Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
,[Materials].[Brand].&[Fanta Orange CSD]))
) ON ROWS
FROM [sfe cube]
当我运行查询时出现错误:
仅选择支撑轴COLUMNS。
我做错了什么?
答案 0 :(得分:1)
您可以为WITH
SET [YourSet] AS
NonEmpty
(
NonEmpty
(
{[Customers].[Customer].MEMBERS}
,{[Materials].[Brand].&[Fanta Orange CSD]}
)
,{[Materials].[Brand].&[Coca-Cola]}
)
SELECT
[Measures].[Cs] ON 0
,NON EMPTY [YourSet] ON 1
FROM [sfe cube]
WHERE
(
[Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
);
逻辑实现类似的内容:
Exists
本文详细介绍了使用intersect
的另一种变体(我更喜欢):
MDX query to calculate measure with AND condition by members from same dimension
我喜欢Sourav给我们的想法WITH
SET CommonCustomers AS
Intersect
(
NonEmpty
(
[Customers].[Customer].MEMBERS
,[Materials].[Brand].&[Coca-Cola]
)
,NonEmpty
(
[Customers].[Customer].MEMBERS
,[Materials].[Brand].&[Fanta Orange CSD]
)
)
SELECT
{[Measures].[Cs]} ON COLUMNS
,NON EMPTY
CommonCustomers ON ROWS
FROM [sfe cube]
WHERE
(
[Calend].[Period].&[201506]
,[Customers].[BP Territory].&[38UZ1]
);
。我认为他的剧本可以稍微简化一下:
#cont {
perspective: 10000px;
transform-style: preserve-3d;
-webkit-animation: rotat 1s linear infinite;
animation: rotat 10s linear infinite;
transform-origin: 50% 50% 50%;
}
.circ {
height: 200px;
width: 200px;
border: 2px solid black;
border-radius: 50%;
position: absolute;
top: 50px;
left: 50%;
margin-left: -100px;
transform-origin: 50%;
transform-style: preserve-3d;
background: orange;
}
.circ:nth-child(1) {
transform: rotateX(0deg);
}
.circ:nth-child(2) {
transform: rotateX(30deg);
}
.circ:nth-child(3) {
transform: rotateX(60deg);
}
.circ:nth-child(4) {
transform: rotateX(90deg);
}
.circ:nth-child(5) {
transform: rotateX(120deg);
}
.circ:nth-child(6) {
transform: rotateX(150deg);
}
.circ:nth-child(7) {
transform: rotateX(180deg);
}
/*other side rotated*/
.circ:nth-child(8) {
transform: rotateY(30deg);
}
.circ:nth-child(9) {
transform: rotateY(60deg);
}
.circ:nth-child(10) {
transform: rotateY(90deg);
}
.circ:nth-child(11) {
transform: rotateY(120deg);
}
.circ:nth-child(12) {
transform: rotateY(150deg);
}
.circ:nth-child(13) {
transform: rotateY(180deg);
}
.oth {
background: crimson;
}
@-webkit-keyframes rotat {
0% {
-webkit-transform: rotateY(0deg) translateX(0);
}
100% {
-webkit-transform: rotateY(360deg);
}
}
@keyframes rotat {
0% {
transform: rotateY(0deg);
}
100% {
transform: rotateY(360deg);
}
}
答案 1 :(得分:0)
你的语法已经乱了!检查INTERSECT
here的语法。
我获得“普通”客户的方式如下:
WITH SET CommonCustomers AS
INTERSECT(
NonEmpty(
[Customers].[Customer].members,
(
[Calend].[Period].&[201506],
[Customers].[BP Territory].&[38UZ1],
[Materials].[Brand].&[Coca-Cola]
) * [Measures].[Cs]
)
,
NonEmpty(
[Customers].[Customer].members,
(
[Calend].[Period].&[201506],
[Customers].[BP Territory].&[38UZ1],
[Materials].[Brand].&[Fanta Orange CSD]
) * [Measures].[Cs]
)
)
SELECT {} ON COLUMNS,
CommonCustomers ON ROWS
FROM [sfe cube]