我在SSRS 2005中创建了一个包含许多数据集的报告。一个例子可能是运送一箱箱货物的卡车数量,以及每个车队要运送多少箱货物。卡车有一个出发时间,在到达目的地之前可能会行驶很长一段时间(我想看看有多少辆卡车在路上)。示例结果集可能如下所示:
+---------------------+------------+------------+------------+
| | Current | MTD | YTD |
+---------------------+------------+------------+------------+
| Convoy 1 | # Trucks | 3 | 0 | 16 |
| | Boxes | 150 | 0 | 1005 |
+----------+----------+------------+------------+------------+
| Convoy 2 | # Trucks | 0 | 12 | 8 |
| | Boxes | 0 | 144 | 113 |
+----------+----------+------------+------------+------------+
| Convoy 3 | # Trucks | 0 | 0 | 0 |
| | Boxes | 0 | 0 | 0 |
+----------+----------+------------+------------+------------+我被要求将sql放在报告中,而不是使用存储的过程或视图。
所有车队都必须出现在结果集中,即使当时没有卡车送货(如车队3)。我目前对查询所做的是查找所有的车队,然后左连接到每个日期范围。例如,伪查询为:
select a.convoy_name, current.trucks, current.weight, mtd.trucks, mtd.weight, ytd.trucks, ytd.weight
from(
(get all convoys) a
left join
(get trucks and boxes for current date) current
on a.something = current.something
left join
(get trucks and boxes for mtd) mtd
on a.something = mtd.something
left join
(get trucks and boxes for ytd) ytd
on a.something = ytd.something
)日期查询之间的唯一区别是开始日期。我希望能够做的是创建一个通用查询,我可以将开始日期传入其中,并返回当前、mtd或ytd结果(就像我使用存储的proc一样)。有人在here上发布了类似的问题,但没有得到回复。
SSRS 2005有办法做到这一点吗?(我很好奇在以后的版本中是否也可以这样做)。
我不想添加更多的数据集,因为我的一个报告已经有大约10个数据集。
发布于 2011-05-26 17:19:48
我不能完全理解你的问题(对不起!)。看看链接的另一个问题,看起来他们希望得到类似Excel SUMIF命令的东西,在这个命令中,他们不在查询级别过滤数据,而是在报告级别过滤数据。对于SSRS 2005,这是可能的,方法是创建查询中不使用的参数,然后在组详细信息级别进行筛选。这接近于回答你的问题了吗?
https://stackoverflow.com/questions/5968599
复制相似问题