我正在使用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中执行此操作以作为单个数据集返回。
答案 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