我们有三张表格,代理商,地区和国家,我们希望将它们合并到一张新的国家/地区表格中。将表格与TSQL组合成一张表格
旧的模式是
oldSchema.Agencies
AgentId PK,int
TaxName varchar(3)
TaxRate decimal(18,3)
oldSchema.Regions
RegionCode PK,tinyint
AgentId int
oldSchema.Countries
CountryCode PK,varchar(2)
CountryName varchar(50)
RegionCode tinyint
我们的组织不再用户的机构和地区,所以我们希望该机构的数据合并到一个newSchema.Countries表。
新的架构是
newSchema.Countries
CountryCode PK,varchar(2)
CountryName varchar(50)
TaxName varchar(3)
TaxRate decimal(18,3)
下面的更新查询是不正确的,因为它插入相同的数据到每一行
INSERT INTO newSchema.Countries (
CountryCode
,CountryName
,TaxName
,TaxRate
)
SELECT OldSchema.Countries.CountryCode
,OldSchema.Countries.CountryName
,OldSchema.Agencies.TaxName
,OldSchema.Agencies.TaxRate
FROM OldSchema.Agencies
INNER JOIN (
OldSchema.Regions INNER JOIN OldSchema.Countries ON OldSchema.Regions.RegionCode = OldSchema.Countries.RegionCode
) ON OldSchema.Agencies.AgentId = OldSchema.Regions.AgentId
WHERE NewSchema.Countries.CountryCode = OldSchema.Countries.CountryCode
我们如何插入TaxName和将TaxRate,每家机构进入新国家的表格是否使每个国家都可以从机构表中得到正确的税收?
你的意思是每行都有相同的数据?示例数据可能对您有所帮助。 –