如何在SSRS上使用2个数据集来比较和显示结果

时间:2017-08-30 03:46:41

标签: reporting-services dataset ssrs-2008

我正在使用SSRS 2008来构建报告

功能性:

我创建了包含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

我希望在报告级别而不是SQL中执行此操作以作为单个数据集返回。

2 个答案:

答案 0 :(得分:0)

如果可能的话,在SQL中做这样的事情会更容易......

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

根据您的第一个数据集(dsLocation)创建表格,然后添加一个额外的列并将表达式设置为这样的......

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

这将查看该行的locationid,尝试在prevDsLocation中找到LocationID中的匹配项,如果找到匹配项,则会从prevDsLocation返回mmPremium。

答案 1 :(得分: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