Tsql 将记录更改为其他区域

Tsql 将记录更改为其他区域,tsql,reporting-services,sql-server-2012,Tsql,Reporting Services,Sql Server 2012,我希望你能给我指出正确的方向 我有一份按大陆/国家/客户组织的SSRS报告,我需要更改(强制?)一些客户,使其出现在与DB不同的地区/国家。即: 我在正确的地区/国家(澳大拉西亚/新西兰)有一个新西兰本地客户,但我希望这个客户出现在不同的地区/国家,即(亚洲/中国),因为该客户在本地购买,但全部出口到中国 当然,还有一些其他客户需要按照相同的标准手动组织 你知道我该怎么做吗? 通过SQL Server或SSR来实现这一点的最佳选择是什么 提前谢谢。 Eric我将创建一个名为AreaOverrid

我希望你能给我指出正确的方向

我有一份按大陆/国家/客户组织的SSRS报告,我需要更改(强制?)一些客户,使其出现在与DB不同的地区/国家。即:

我在正确的地区/国家(澳大拉西亚/新西兰)有一个新西兰本地客户,但我希望这个客户出现在不同的地区/国家,即(亚洲/中国),因为该客户在本地购买,但全部出口到中国

当然,还有一些其他客户需要按照相同的标准手动组织

你知道我该怎么做吗? 通过SQL Server或SSR来实现这一点的最佳选择是什么

提前谢谢。
Eric

我将创建一个名为
AreaOverride
的新表,其中包含以下列:

CustomerId
Continent
Country
然后在查询中使用左外部联接链接到此字段,并使用覆盖的值替换大陆和国家(如果存在):

Select CustomerId,
Case when AreaOverride.Continent is not null then AreaOverride.Continent else Customer.Continent end as Continent,
Case when AreaOverride.Country is not null then AreaOverride.Country else Customer.Country end as Country
From Customer
Left outer join AreaOverride On AreaOverride.CustomerId = Customer.CustomerId
如果要在多个报表或其他位置使用此视图,则可能需要将其设置为视图

然后,每当您需要覆盖客户的详细信息时,只需在此表中为其添加一行,这些值就会在您的报告中被覆盖

请注意,如果您处理的是供应商数据库而不是您自己的数据库,您不想弄乱他们的数据库结构,但您仍然可以通过创建一个新数据库并将
AreaOverride
表放入其中来实现这一点。然后将数据库名称添加到联接中。例如,如果您的数据库被称为
MyStuff
,那么您的连接如下所示:

Left outer join MyStuff.dbo.AreaOveride On ...