SQL SSRS 将结果映射到矩阵

SQL SSRS Mapping Results to a Matrix

我有许多配置文件,这些配置文件具有一定级别的权限,这些配置文件被枚举并存储在 SQL 中。我想在 SSRS 中创建一个报告,该报告在 table 的左侧显示所有权限,在顶部显示所有配置文件,并带有 X 或具有适当权限的配置文件的一些指示。此信息存储在三个 table 中。

Table 1:配置文件 - 返回与 GUID

相关的配置文件的名称

Table 2: Profile_Priv - 给出具有权限编号的配置文件的 GUID(只有实际授予配置文件的权限才会出现在此 table)

Table 3:权限 - 将权限编号与权限名称相关联。

我有一个查询可以拉取分配给配置文件的权限,我可以轻松地用所有可能的权限填充空白矩阵,但是将两者结合起来让我很吃力。到目前为止,这是我在 SSRS 中所拥有的。我在 SSRS 中传递了一个名为 ProfileName 的参数,以允许查询显示该特定报告需要哪些配置文件。

Select Privileges.Description, Profiles.Name
FROM Privileges LEFT OUTER JOIN
Profile_Priv ON Privileges.ID = Profile_Priv.ID INNER JOIN
Profiles ON Profile_Priv.PID = Profiles.PID
WHERE (Profiles.Name = @ProfileName)
ORDER BY Privileges.ID

这不会像我预期的那样填充 table 中的任何信息,也不会进行任何类型的数据转换,例如将值变为是。

非常感谢任何反馈或帮助。

加法 1:

即使将其更改为完全加入,也仅执行单个配置文件 returns 特定配置文件具有的权限。

我要创建的是报告中的类似内容:

               Profile 1     Profile 2     Profile 3    Profile 4
Permission 1   X                           X                     
Permission 2   X             X             X            X
Permission 3                 X                          X
Permission 4                                        

目前,如果我正在搜索配置文件 2,我会使用上面的示例得到这个:

               Profile 2                              
Permission 2   X             
Permission 3   X               

您可以执行完全外部联接,但不要使用 WHERE 子句,而是使用 CASE 语句 return 类似 "True"(如果配置文件具有该权限)或 "False" 如果没有。这样你总能获得所有权限。