SSRS:部分重用 MDX 查询?或者 MDX 作为参数?

发布于 2024-11-19 07:11:10 字数 430 浏览 5 评论 0原文

在 Sql Server Reporting Services 报表中,

是否可以在报表中定义 MDX 查询,然后多次重复使用它,但每次都使用不同的 WHERE 部分。

即每一行的 Members 和 SELECT 部分都是相同的 (MTD.Count YTD.Count),

但是,我想用 10 种不同的方式对其进行过滤。

我现在能想到的唯一方法是添加 10数据集,每个数据集都有不同的 WHERE 部分,但我想仅重复使用一个 DS

一种完全可接受的选择是将整个 MDX 查询作为某种参数提供给报告。我的挑战是我的 MDX 查询是动态生成的(包括实际查询的数量),所有这些都是用户驱动的。那么有没有一种方法可以向报告提供 n MDX 查询,并将其插入矩阵中?我今天想到的一种方法是动态发出整个 RDL XML。

in Sql Server Reporting Services Report

is it possible to define a MDX query within a report, and then re-use it a bunch of times, but each time with different WHERE section.

i.e. the Members and SELECT section would be the same for each row (MTD.Count YTD.Count)

but, i'd want to filter it 10 different ways..

The only way i can think of doing this right now, is adding 10 datasets, each with a different WHERE section, but i'd like to re-use just one DS

ALTERNATIVELY

Another totally acceptable option would be to supply whole MDX queries to the report as parameters of some sort. My challenge is that my MDX queries are generated dynamically (including the # of actual queries), all of that is user driven. So is there a way i could supply n MDX queries to a report, and have it plug that into a matrix? One way i thought of doing this today, is to emit the whole RDL XML dynamically..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嗼ふ静 2024-11-26 07:11:10

您可以使用一些参数来获取数据集,如下所示:

SELECT
{
    StrToSet(@rowAxisMdx)
} ON 0,
{
    StrToSet(@columnAxisMdx)
} ON 1
FROM [Cube]
WHERE {
    @StrToSet(@slicerAxisMdx)
}

由于您使用了大量 StrToSet 函数,因此速度会很慢,但它应该可以工作。

You can have the dataset using a few parameters like this:

SELECT
{
    StrToSet(@rowAxisMdx)
} ON 0,
{
    StrToSet(@columnAxisMdx)
} ON 1
FROM [Cube]
WHERE {
    @StrToSet(@slicerAxisMdx)
}

It will be slow since you are using a lot of StrToSet functions, but it should work.

无人接听 2024-11-26 07:11:10

这很可能是我的解决方案:

子报告

是的,子报告救了我在这里。我的实际目标是对每行使用不同的 WHERE 部分重复相同的 MDX 查询。子报告就是为此而设计的。您可以定义一个矩阵并将其绑定到数据集。该数据集将决定您的矩阵将填充多少行数据。

您可以将子报表嵌入到矩阵的单元格中,并向其传递一个参数(在我的例子中,我传递整个 WHERE 过滤器,但您可以使其更细化,只传递一个字段。

然后在子报表中,您可以只显示一组基于从父报告传入的参数的信息,

这里还有一些链接

子报告

使用自定义 MDX 查询设计报告

This is most likely my solution:

Subreports

Yep, subreports saved me here.. My actual goal was to repeat the same MDX query with a different WHERE section for each row. Sub reports are design for just that. You can define a matrix and bind it to a dataset. That dataset will determine how many rows of data your matrix will be populated it.

You can embed a subreport in a cell of your matrix, and pass it a parameter (in my case i am passing the whole WHERE filter, but you could make it more granular and only pass a field.

Then in your subreport you can display just one set of information based on a parameter which is passed in from parent report.

here are some more links

SubReports

Designing Reports with Custom MDX Queries

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文