【发布时间】:2018-08-24 05:06:33
【问题描述】:
我必须创建一个 SSRS 报告,该报告应该同时显示汇总数据和非汇总数据,但幸好不是同时显示。我想知道是否可以在一个存储过程和一个报告中做到这一点。
报告有一个包含值的下拉列表:
- 显示汇总
- 显示非聚合
让用户决定显示哪些数据。
此外,数据应由CountryId 列连接。
我有一个Finance 表,看起来像:
FinanceId | CountryId | Year | I | II | III
----------+-----------+------+---+----+-----
1 | 1 | 2016 | 1 | 1 | 1
2 | 1 | 2016 | 2 | 2 | 2
//this is how I return grouped and summed data (there are many rows in this table, I left only two for better readability)
WITH CTE_Grouped1
(
SELECT
FinanceId, Year, I, II, III
WHERE
FinanceId = 1
)
, CTE_Grouped2
(
SELECT FinanceId, Year, I, II, III
WHERE FinanceId = 2
)
SELECT
CTE_Grouped1.FinanceId,
CTE_Grouped1.Year,
SUM(Grouped1.I),
SUM(Grouped1.II),
SUM(Grouped1.III),
SUM(Grouped2.I),
SUM(Grouped2.II),
SUM(Grouped2.III)
FROM
CTE_Grouped1
JOIN
CTE_Grouped2 ON CTE_Grouped1.CountryId = CTE_Grouped2.CountryId
GROUP BY
CTE_Grouped1.FinanceId, CTE_Grouped1.Year
//this is how I could return not aggregated data
SELECT * FROM Finance
我的问题是,如何以用户选择的方式返回数据。
查询比较复杂,我不清楚该怎么做。
我应该创建两个单独的报告还是应该有一个聪明的方法来实现这一点。
【问题讨论】:
-
Gail Shaw 有一篇关于这种查询类型的优秀博客文章。 sqlinthewild.co.za/index.php/2009/09/15/…
标签: sql-server reporting-services