SRSS - 两列中来自同一 SQL 请求的双组

Posted

技术标签:

【中文标题】SRSS - 两列中来自同一 SQL 请求的双组【英文标题】:SRSS - Double GROUPS from same SQL request in two columns 【发布时间】:2022-01-03 23:16:00 【问题描述】:

作为 s-s-rS 的新手,我完全被困住了。

我有一组这样形成的数据:

权利的“选择”涉及多个“公司” 一个“公司”包含多个“导体” 一个“选择”可由多个“访问者”访问

我的 SQL 结果如下所示:

SELECTION_NAME COMPANY_NAME CONDUCTORS_NAME ACCESSORS_NAME
SELECT_A COMPANY_A John Maggie
SELECT_A COMPANY_A John Lucy
SELECT_A COMPANY_A John Veronica
SELECT_A COMPANY_A Bob Maggie
SELECT_A COMPANY_A Bob Lucy
SELECT_A COMPANY_A Bob Veronica
SELECT_A COMPANY_AA Luke Maggie
SELECT_A COMPANY_AA Luke Lucy
SELECT_A COMPANY_AA Luke Veronica

如您所见,导体重复的次数与相对 Selection 的访问者一样多。

我希望在我的 s-s-rS 报告中拥有一个相对相同的结构,但我希望导体和相关访问者列出每个 ONCE。 并且,按选择 > 公司分组。

可能是这样的:

SELECTION_NAME COMPANY_NAME CONDUCTORS_NAME ACCESSORS_NAME
SELECT_A COMPANY_A
John Maggie
Bob Lucy
Veronica
COMPANY_AA
Luke Maggie
Lucy
Veronica

我尝试创建 2 个数据集并使用 LOOKUP,但如果它仅列出一次导体,在每一行,我都会重复第一个访问器,没有更多行,没有其他访问器名称..

如何在第三列中显示conductors,无论访问者数量如何,按SELECTION > Company 分组,并且仅在第四列中显示SELECTION accessors,无论导体,还按SELECTION > Company 分组(即使访问者将在同一Selection的每个公司行)?

s-s-rS 可以做到这一点吗? 我正在使用 Microsoft Visual Studio 2010。

谢谢

【问题讨论】:

【参考方案1】:

你不需要做任何复杂的事情。

创建一个数据集,为您提供问题开始时显示的表格。

然后将 tablix(表格)添加到您的报告中。

有几种方法可以创建设计,但如果您首先将访问器拖到详细信息行上。现在,在主设计窗口下,您将看到列出了行组的部分,您将只有一个名为“详细”的部分,现在您可以将导体拖动到详细信息行组上方,也可以右键单击详细信息行组并添加父组并选择指挥。重复为其他两列添加行组。

s-s-rS 文档更详细地解释了这个过程

https://docs.microsoft.com/en-us/sql/reporting-services/lesson-6-adding-grouping-and-totals-reporting-services?view=sql-server-ver15

他的快速 GIF 使用您的数据向您展示基本步骤。请注意,我将字段名称拖动到现有行组名称的正上方,以便出现一条蓝线,然后松开鼠标按钮。

【讨论】:

谢谢!我现在有一次导体,但是在每个导体处重复访问器而不是一次。我的 Arbo 是(组):Selection > Company > Conductors > Details (accessors)【参考方案2】:

我没有找到任何方法来只使用组..

我创建了一个带有访问器的子报表(链接到选择 > 公司 > 访问器)。 我将它添加到主报告的新列中,该列仅显示“导体”(选择 > 公司 > 导体)。

唯一的缺点是它的充电报告真的很长..:/

【讨论】:

以上是关于SRSS - 两列中来自同一 SQL 请求的双组的主要内容,如果未能解决你的问题,请参考以下文章

组合 SQL 中同一列中的行

用于计算同一列的值百分比的 SQL [关闭]

SQL查询从两列中检索两个日期之间的数据

SQL - 选择两列中具有相同值的行

用于计数和显示(列中的不同值)的 Sql 查询优化,按其他两列分组

从表中的两列中选择相同的数据,并使用一条sql语句显示所有数据