SSRS根据同一行中的其他单元格在一个单元格中查询结果
尚未在SSRS中执行此操作,我正在挠头。SSRS根据同一行中的其他单元格在一个单元格中查询结果
基本上,我有一个基于DataSet 1的Tablix。Tablix在一个名为AssemblyName的字段上进行排序和分组,它也是第一个列值。第二列值基于称为数量的字段的总和。 (在数据库表中,每行都有一个AssemblyName值和一个Quantity值)
棘手的部分是这样的:数据库中还有另一个表,其中包含AssemblyName和Quantity的'snapshot'(基于旧的)数据。
而在我的Tablix中,我希望在行的第一个单元格中显示一个单元格,该单元格的总数为AssemblyName的旧数量。旧数据将从数据库表中取出。
基本上,我们的目标是显示一个由AssemblyName分组和排序的Tablix,并在Tablix中包含以下列:程序集名称(来自当前数据库表),当前数量总和(来自当前数据库表)旧数量总和(来自另一个数据库表与旧数据)。
我有一切工作,除了旧数据库表中包含旧数量总和的单元格。
旧的数据库表位于同一个数据库中,所以这不是问题,我的问题是,创建基于同一Tablix行中AssemblyName的值在旧表中对数量进行求和的查询。
我试着基于来自数据集1拉到参数的查询创建数据集2,然后在旧的数量单元中写入此表达式:
=Sum(Fields!Quantity.Value, "Dataset 2")
我在得到的每一个细胞都空值第三列,其中包含上述表达式。我假设它是因为数据集2实际上没有在同一个tablix行中读取AssemblyName的值。然而,我想要做的本质是将包含AssemblyName的tablix中的第一列的值传递给数据集2的查询中的WHERE子句,该数据集的参数依次显示在第三列的单元格中同样的tablix行。
万一有帮助,从数据集2查询如下:
SELECT AssemblyName
, Quantity
FROM OldData
WHERE AssemblyName = @compare_AssemblyName
我希望这是有道理的,但根据需要,这样我可以澄清,请提问。
问候。
你应该能够与新的数据一起拉老数据在相同的查询,那么就总结各自的领域:
SELECT AssemblyName
, NewQuantity = n.Quantity
, OldQuantity = COALESCE(o.Quantity, 0)
FROM NewData n
LEFT JOIN OldData o
ON n.AssemblyName = o.AssemblyName
WHERE n.AssemblyName = @compare_AssemblyName
或许我可以总结在查询中老数量的数据集1 ? –
您能否显示来自两个数据集的一些样本数据? – Harry
你试过查找吗?像这样= LookUp(Fields!AssemblyName.Value,Fields!AssemblyName.Value,Fields!Quantity.Value,“dataset_oldvalue”)。 – Harry