我们有一个使用Analysis Services作为数据源的项目。为了避免因为我们允许的所有选择选项而不得不创建100个查询,我们使用大量的开关和字符串连接来创建mdx查询。这是我们的“数据访问层”。这是一个管理的野兽和最小的错误:缺少空间,错误很容易错过,甚至更容易意外包括。有没有人知道一个好的资源,可以帮助使这个更易于管理,如教程,白皮书或示例项目。
为了让您了解我正在谈论的案例逻辑,它会继续...... if(时间==天) { if(年= =一) { return(“MEMBER”+ CurrentSalesPercent + “AS([Sales%”+ YearString +“”+ StatusType +“])”); } 否则// 2Y { return(“MEMBER”+ CurrentSalesPercent + “AS([Sales%2Y”+ StatusType +“])”); } } 否则如果(时间==周) { if(年= =一) { return(“MEMBER”+ CurrentSalesPercent + “AS([Sales WTD%”+ YearString +“”+ StatusType +“])”); } 否则// 2Y { return(“MEMBER”+ CurrentSalesPercent + “AS([Sales WTD%2Y”+ StatusType +“])”); } ...
老实说,我不确定所有不同的衡量标准和计算是否正确。但是,这是由另一个团队控制的,所以我们在这里的影响要小一些。
谢谢! MKT
答案 0 :(得分:1)
你看过MS生成MDX的方式吗?如果安装了SSRS,请获取“Red gate Reflector”并反汇编C:\ Program Files \ Microsoft SQL Server \ MSRS10.MSSQLSERVER \ Reporting Services \ ReportServer \ bin \ MDXQueryGenerator.dll
除此之外,采用参数的预先查询似乎非常标准:(