在ssrs中将两个数据值合并为一个

时间:2014-10-16 12:52:19

标签: sql reporting-services ssrs-2008-r2

我正在使用ssrs创建一个从两个数据库中获取数据的报告。现在,在两个所述数据库的表中,我有一个列,它指定了我使用union语句合并的区域。在此列中,在一个数据库表中,其中一个区域的值定义为"北美"而在另一方面,它定义为"北美"。由于它们在技术上具有不同的名称,因此当我在报表中使用此数据字段时,它们将显示为两个不同的值。我以为我可以使用switch函数重命名其中一个,希望它们能合并,但只能成功重命名数据值而不是合并数据。有关详细信息,我将在条形图中显示这些区域。

有没有办法可以将区域字段中的这两个数据值合并为一个数据值?提前谢谢!

1 个答案:

答案 0 :(得分:1)

如果模式只是用连字符替换空格,则可以使用REPLACE,如下所示:

SELECT Region
FROM MyTable
UNION ALL 
SELECT REPLACE(Region, '-', ' ') AS Region
FROM OtherDatabase.dbo.OtherTable

否则,您可以创建一个查找表,用于在需要时替换Region名称。我们使用字段RegionLookupLookupValue来调用表ReplaceValue。您在表格中输入一个条目来映射需要替换的区域,如下所示:

LookupValue    ReplaceValue
North-America  North America

现在你的SQL看起来像这样:

SELECT Region
FROM MyTable
UNION ALL 
SELECT CASE WHEN RegionLookup.ReplaceValue IS NOT NULL THEN RegionLookup.ReplaceValue ELSE OtherTable.Region END AS Region
FROM OtherDatabase.dbo.OtherTable
LEFT OUTER JOIN OtherDatabase.dbo.RegionLookup ON OtherTable.Region = RegionLookup.LookupValue

当Region的RegionLookup表中有一个条目时,它会替换为替换值(应该与第一个表中的值相同),否则您只需使用原始区域。现在你只需要映射表格之间拼写不同的区域,你就可以了。