2017-08-30 95 views
0

我使用SSRS 2008年建立的报告如何使用在SSRS 2个数据集进行比较,并显示结果

功能:其为具有2个集

1) dslocation 
2) prevdslocation 

There are few fields like say: 

    1) locationId 
    2) locationName 
    3) mmpremium 
    4) sspremium 

我已创建报告

在我的报告中,我需要显示如下结果:

Locationname  mmpremium(dslocation) - mmpremium (prevdslocation) 

SANDY    1000 - 2000 
RANSY    2000 - 3000 

我想在r eport级别而不是SQL返回为单个数据集。

+0

我不认为这是可能的。只要您可以确定表格将按照相同的顺序排列,您就可以将许多表格放在一起。这会在外观上进行物理连接。我可以问为什么你不想加入SQL来返回一个数据集? – Schmocken

回答

0

如果可能的话,做SQL这种东西它使得像容易得多......

但是,您可以使用查询来实现这一目标,如果它是两个数据集之间简单的“加入”。

创建基于您的第一个数据集(dsLocation)表,然后添加一个额外的列,并设置表达这样的事情...

=Lookup(Fields!LocationID.Value, Fields!LocationID.Value, Fields!mmPremium.Value, "prevDsLocation") 

这将着眼于locationid该行,试图找到在prevDsLocation的LocationID中匹配,如果找到匹配,它将从prevDsLocation返回mmPremium。

0
Following are the tables and data used for report creation- 
create table dslocation 
(
locationId int 
, locationName varchar(20) 
    , mmpremium int 
    , sspremium int 
) 
INSERT INTO dslocation 
VALues (1, 'SANDY', 1000,'') 
,(2, 'RANSY', 2000,'') 

create table prevdslocation 
(
plocationId int 
, plocationName varchar(20) 
    , pmmpremium int 
    , psspremium int 
) 

INSERT INTO prevdslocation 
VALues (1, 'SANDY', 2000,'') 
,(2, 'RANSY', 3000,'') 

Then add a column and write following expression in placeholder- 
=Fields!mmpremium.Value-join(LookupSet(Fields!locationId.Value,Fields!plocationId.Value,Fields!pmmpremium.Value,"prevdslocation"),",") 

Following is the screenshot of the solution - 
[![enter image description here][1]][1] 



    [1]: https://i.stack.imgur.com/mdKML.jpg