如何使用一个表中的列到另一个在SQL Server 2008 R2
问题描述:
我有两个表如何使用一个表中的列到另一个在SQL Server 2008 R2
History with(BU,KPI_Name,YTD,Actual,Deviation)
Codes with (KPI_Name, KPI_code)
历史表的KPI_Name列的内容恰好复制到码表的KPI_Name。这个KPI_Name值是一个很长的语句,为此我开发了一个用于理解并复制到Codes表中的“Short Code”。
现在,历史表我想用代码表,而不是历史表的KPI_name列的KPI_Code列。
所以输出应该是:KPI_Table与(BU,KPI_Code,年初至今,实际的偏差)
希望我能够让你明白我要求的。
我尝试了许多代码,但问题是代码表只包含30行,历史表后执行包含90行,因此无法正确映射代码的输出。
答
如果我理解正确的问题,问题是为何代码表格只包含30行,而历史包含90.你应该只能够看值代码,看看哪些是失踪。
使用SQL你可以:
select h.KPI_Name, c.KPI_Code
from History h
left outer join Codes c on c.KPI_Name = h.KPI_Name
一旦你制定了什么是错的代码转换,你可以使用
alter table History add KPI_Code (data type)
一个KPI_Code列添加到历史然后从代码的东西来填充它如:
update History
set KPI_Code = c.KPI_Code
from History
inner join Codes c on c.KPI_Name = History.KPI_Name
如果您不明白为什么KPI_Code代不工作ing,post that code
事情是,历史表是3个业务单位。而且所有的业务单元都包含相同的行(所有行的所有30行的名称都相同),那么我就编码了一个小代码。在代码表中,它只包含每行的代码。但是,如果执行后的历史记录表显示了所有业务单位的结果(将业务单位视为部门)。如果问题不明确,请告知我。 – Pankaj 2012-03-20 07:46:48
你需要提供一些示例数据来解释问题 - 输入和要求的输出 – kaj 2012-03-20 07:49:41