2017-09-19 44 views
0

尚未在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 

我希望这是有道理的,但根据需要,这样我可以澄清,请提问。

问候。

+0

或许我可以总结在查询中老数量的数据集1 ? –

+0

您能否显示来自两个数据集的一些样本数据? – Harry

+1

你试过查找吗?像这样= LookUp(Fields!AssemblyName.Value,Fields!AssemblyName.Value,Fields!Quantity.Value,“dataset_oldvalue”)。 – Harry

回答

0

你应该能够与新的数据一起拉老数据在相同的查询,那么就总结各自的领域:

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 
相关问题