c# - Percolator 分析服务在 mdx 查询(LINQ to mdx)中的多个 where 条件
问题描述
我正在尝试在以下 linq 查询上应用多个 where 条件:
using (var _DB = new MyDB())
{
var QryYear = from model in _DB.DL
where model.BusinessDate.BusinessDate.Years["2016"]
where model.BusinessDate.BusinessDate.Years["2017"]
where model.NumL.Num[FirstNumber].Function("Lag(2)") | model.NumL.Num[SecoundNumber]
select new MdxQuery
{ OnColumns = model.Amount };
result = QryYear.Percolate<AmountModel>().ToList();
但我得到了这个异常({“Query (13, 1) The BusinessDate hierarchy is used more than once in the Crossjoin function.”})这是查询在 mdx 中的样子:
SELECT{Measures.[Amount]} ON 0
//---------- From / SubCube ----------
FROM [DL]
//---------- Slicers ----------
WHERE
([BusinessDate].[BusinessDate].[Years].[2016], [BusinessDate].[BusinessDate].
[Years].[2017]
, ([DL].[Num].[55].Lag(2) : [DL].[Num].[2305]))}
解决方案
MDX 中的大括号 () 表示元组或交叉连接,您在 WHERE 子句中使用大括号。尝试通过在它们周围放置花括号将两个指定的年份组合成一个集合:
SELECT{Measures.[Amount]} ON 0
//---------- From / SubCube ----------
FROM [DL]
//---------- Slicers ----------
WHERE
(
{[BusinessDate].[BusinessDate].[Years].[2016],
[BusinessDate].[BusinessDate]. [Years].[2017]
}
, ([DL].[Num].[55].Lag(2) : [DL].[Num].[2305]))
笔记
只是为了确认。以下MDX
是有效的:
SELECT
NON EMPTY [Measures].[Internet Sales Amount] ON 0,
NON EMPTY [Date].[Calendar Year].MEMBERS ON 1
FROM [Adventure Works];
它返回这个:
但是,如果我们将 2 年成员移动到 WHERE 子句,就像您的脚本一样,那么它不是有效的 MDX:
SELECT
NON EMPTY [Measures].[Internet Sales Amount] ON 0
FROM [Adventure Works]
WHERE ([Date].[Calendar Year].&[2005], [Date].[Calendar Year].&[2006]);
异常消息:
执行查询 ... 查询 (4, 1) 在 Crossjoin 函数中不止一次使用 Calendar Year 层次结构。运行完成
但是,如果您按照我的建议添加花括号,那么它是有效的:
SELECT
NON EMPTY [Measures].[Internet Sales Amount] ON 0
FROM [Adventure Works]
WHERE ( {[Date].[Calendar Year].&[2005], [Date].[Calendar Year].&[2006]});
结果是
推荐阅读
- postgresql - 运行 scala-web 项目,postgresql 权限被拒绝创建扩展“uuid-ossp”
- algorithm - 合并图的算法
- android - Google Maps API v2 默认标记未与 LocationCallback() 中的手动绘制标记对齐
- javascript - React Native - Cameraroll 不显示图片
- project - Odoo11 - 将用户分配限制为项目团队成员
- pascal - 如何寻找文本文件?
- python - 将 Discord 机器人的默认帮助命令放在一个类别中(Python)
- excel - 在矩阵上查找巧合
- sql - Reporting Services,在算术运算期间出错
- php - 加载带有 jquery 脚本的完整 PHP 文件