我正在使用ssrs创建一个从两个数据库中获取数据的报告。现在,在两个所述数据库的表中,我有一个列,它指定了我使用union语句合并的区域。在此列中,在一个数据库表中,其中一个区域的值定义为"北美"而在另一方面,它定义为"北美"。由于它们在技术上具有不同的名称,因此当我在报表中使用此数据字段时,它们将显示为两个不同的值。我以为我可以使用switch函数重命名其中一个,希望它们能合并,但只能成功重命名数据值而不是合并数据。有关详细信息,我将在条形图中显示这些区域。
有没有办法可以将区域字段中的这两个数据值合并为一个数据值?提前谢谢!
答案 0 :(得分:1)
如果模式只是用连字符替换空格,则可以使用REPLACE
,如下所示:
SELECT Region
FROM MyTable
UNION ALL
SELECT REPLACE(Region, '-', ' ') AS Region
FROM OtherDatabase.dbo.OtherTable
否则,您可以创建一个查找表,用于在需要时替换Region名称。我们使用字段RegionLookup
和LookupValue
来调用表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表中有一个条目时,它会替换为替换值(应该与第一个表中的值相同),否则您只需使用原始区域。现在你只需要映射表格之间拼写不同的区域,你就可以了。