SSRS多个数据集:如何仅显示不在两个数据集中的记录

时间:2016-11-03 16:35:15

标签: dataset datasource ssrs-2008-r2 ssrs-tablix

我使用SSRS 2008 R2并使用Report Builder 3.0构建报告。 我需要查询2个数据库,一个是总部的中心数据库,另一个是澳大利亚的卫星数据库。 他们都有一张名为买家的桌子。卫星站点只包含一小组数据,我们将在以后返回中心。 他们有以下领域; idBuyer,IdCustomer,DateRegistered 现在我想查询Satellite站点中客户(idCustomer)的所有记录,这些记录尚未位于中央数据源的同一个表中 我正在使用一个使用idBuyer的LookUp来加入Tablix中的数据集。现在我只想过滤卫星数据集中的idCustomer不在中心数据集中的结果

任何指针都会受到赞赏,因为我认为这很简单,但我没有让它工作

1 个答案:

答案 0 :(得分:0)

理想情况下,您应该在SQL中执行此操作。它会使报告更快。

SELCT ID FROM SATELLITE WHERE ID NOT IN (SELECT ID FROM CENTRAL)

但是,这并不总是可行的,因此您可以使用 InSTR 功能过滤不在CENTRAL ID中的ID的Satellite数据库。

对于您的过滤器,请将表达式设置为idBuyer

=IIF(INSTR("|" & Fields!idBuyer.Value & "|", "|" & JOIN(LookupSet(1, 1, Fields!idBuyer.Value, "CENTRAL"), "|") & "|"), 0, 1)

这将从CENTRAL db创建一个ID字符串,并查看Sattelite DB中的ID是否在其中。如果ID在CENTRAL数据库中,则该行获得0 else 1.然后将Value设置为1。

enter image description here

管道(|)用于分隔值,因此当列表中有125或251时,它不会找到25。