我正在尝试创建一份SSRS报告,该报告将在一个页面上显示每个人,每个会计期间(月份)的所有时间表。但是,我正在努力研究如何对结果进行分组。到目前为止,我似乎能够做到的是每页指定用户可以显示一行。
我的T-SQL看起来像这样:
SELECT tblADSI.DisplayName AS FullName,
ds.[Date of Work],
ds.Hours,
ds.[Description of Work],
ds.Mileage,
ds.Subsistence,
ds.[Activity Code] AS CompanyRef,
c.[Cost Center] AS DiaryClient,
r.Role,
c.Description AS Project,
ds.[Accounting Period],
ds.[Rechargeable Items]
FROM [Diary Sheets] ds
LEFT JOIN Commissions c on c.[Commission Code] = ds.[Commission Code]
LEFT JOIN dbo.Roles r on r.Commission = ds.[Commission Code] and r.EmployeeID = ds.EmployeeID
LEFT JOIN [Accounting Period] ap ON ap.ID = ds.[Accounting Period ID]
LEFT JOIN (SELECT displayName,
EmployeeID FROM OpenQuery (
ADSI,
'SELECT
displayName,
EmployeeID
FROM ''LDAP://example.domaincontroller.com/OU=Unit1,DC=domaincontroller,DC=com''
WHERE objectCategory = ''person''
AND objectClass = ''User''
') AS tblADSI
UNION
SELECT displayName,
EmployeeID
FROM OpenQuery (
ADSI,
'SELECT
displayName,
EmployeeID
FROM ''example.domaincontroller.com/OU=Unit2,DC=domaincontroller,DC=com''
WHERE objectCategory = ''person''
AND objectClass = ''User''
') AS tblADSI
) AS tblADSI
ON tblADSI.EmployeeID = ds.employeeID
WHERE c.[Commission Code] = 'Example Commission'
AND ap.[Accounting Period] = 'Febuary 2015'
ORDER BY FullName, ds.[Date of Work], ds.[Activity Code]
SQL的示例输出是。
-- Name Date Of Work Hours
John Smith 01/02/2015 9
John Smith 02/02/2015 10
Jane Doe 01/02/2015 5
Jane Doe 02/02/2015 5
Mike Smith 01/02/2015 8
Mike Smith 02/02/2015 9
因此,使用上面的SQL作为我的示例,我已经构建了一个报告,该报告应该在特定佣金中每个用户(基于用户设置的佣金参数)显示每页。但是,报告中似乎发生的所有事情都显示了一行(2月会计期间的最新条目),仅此而已。例如:
-- Name Date Of Work Hours
John Smith 01/02/2015 9
Jane Doe 01/02/2015 5
Mike Smith 01/02/2015 8
我实际上需要它来显示每个用户的会计期间的所有日记表,因此在报告中,使用John Smith作为示例,它将如此显示:
-- Name Date Of Work Hours
John Smith 01/02/2015 9
John Smith 02/02/2015 10
依旧等等新页面上的其他每个用户。
有人知道我怎么能做到这一点吗?我已经调查过并尝试了一些SSRS分组(我怀疑这是解决方案),但我完全不知所措。无论我尝试什么类型的分组,它始终都是一样的。
我已经写了几年SQL了,但我对SSRS相对较新,而且我的SSRS知识完全是自学的,所以我的一些术语/格式可能不正确。
答案 0 :(得分:0)
我设法通过在我的Tablix上添加SELECT语句中的所有列作为父行组来修复它。感谢mxix和NickyvV的建议,非常感谢。