我正在嘗試使用SQL報表生成器3.0創建分步表報表。步驟報告包含組/設備/用戶以及每個組/設備/用戶的關聯總計。不分類的分步表
我希望整個報告按這些總數排序,每個單獨的步驟也按這種方式排序。
當前用戶按照他們的總數排序,但不是設備或組。
有沒有辦法對其他步驟進行排序?
我正在嘗試使用SQL報表生成器3.0創建分步表報表。步驟報告包含組/設備/用戶以及每個組/設備/用戶的關聯總計。不分類的分步表
我希望整個報告按這些總數排序,每個單獨的步驟也按這種方式排序。
當前用戶按照他們的總數排序,但不是設備或組。
有沒有辦法對其他步驟進行排序?
您可以使用一些嵌套查詢在SQL中執行此操作。假設您有以下表格:交易,用戶,設備和組。交易表記錄了用戶在設備上的交易,並有一個金額字段進行求和。用戶屬於一個組。
所以,你需要總結的金額爲用戶,爲組和組內使用的設備,這將給你的SQL,看起來像這樣:
SELECT G.Description AS [Group], D.Description AS Device, U.Description AS UserName, MAX(GT.GroupTotal) AS GroupTotal, MAX(GDT.GroupDeviceTotal) AS GroupDeviceTotal, SUM(T.Amount) AS UserTotal
FROM Transaction AS T
INNER JOIN User AS U ON L.UserId = F.UserId
INNER JOIN Group AS G ON G.GroupId = L.GroupId
INNER JOIN Device AS D ON T.DeviceId = L.DeviceId
INNER JOIN
(SELECT GroupId, SUM(Amount) AS GroupTotal
FROM Transaction
INNER JOIN User ON User.UserId = Transaction.UserId
WHERE (Transaction.TxDate >= '2011-01-01')
GROUP BY User.GroupId) AS GT ON GT.GroupId = U.GroupId
INNER JOIN
(SELECT GroupId, DeviceId, SUM(Amount) AS GroupDeviceTotal
FROM Transaction
INNER JOIN User ON User.UserId = Transaction.UserId
WHERE (TxDate >= '2011-01-01')
GROUP BY GroupId, DeviceId) AS GDT ON GDT.GroupId = U.GroupId AND GDT.DeviceId = T.DeviceId
WHERE (T.TxDate >= '2011-01-01')
GROUP BY G.GroupId, D.DeviceId, U.UserId
ORDER BY GroupTotal DESC, GroupDeviceTotal DESC, UserTotal DESC
。注意where子句使用必須在主查詢和每個嵌套查詢中相同(這是「WHERE(T.TxDate> ='2011-01-01')」位)。
你可以嘗試將行/列組區域...然後你有每個組,雙擊組中,選擇「排序」,然後根據需要對包含在該信息添加儘可能多的排序字段組級別。
如果您對數據應用了其他類型...比如對於tablix/matrix,有時SSRS可能會感到困惑,所以如果我的建議確實可以幫助您處理效果,但會出現一些問題,除了這些羣組之外,嘗試刪除已應用於報告中其他數據的所有其他排序......並且我將從最內層開始並努力,試圖不重複處於較低羣組數據中的字段。 (如果這是有道理的)。
編輯:
所以,讓我們說我們有一個獸醫辦公室的一份報告顯示客戶信息,我們希望通過PERSONID,petID和visitID組。整個tablix將按照人名(或姓氏,名字......或其他)排序。然後,您的第一個小組將對personID進行分組並按petName排序。第二個較低的組將在petID上分組,並由visitDate排序。第三個級別將對visitID進行分組,並且...這並不需要進行排序,除非通過visitTime訪問,如果它未包含在visitDate中。
你有沒有試過這兩個答案,看看他們是否適合你? – 2011-03-20 15:49:43