Как использовать столбец из одной таблицы в другую в SQL Server 2008 R2 - PullRequest
0 голосов
/ 20 марта 2012

У меня есть две таблицы

History with(BU,KPI_Name,YTD,Actual,Deviation)
Codes with (KPI_Name, KPI_code)

Содержимое столбца KPI_Name Таблица истории точно копируется в KPI_Name Таблица кодов .Это значение KPI_Name является длинным оператором, для которого я разработал «Короткий код» для понимания и скопировал в таблицу кодов.

Теперь, в Таблица истории Я хочу использовать столбец KPI_Code Таблица кодов вместо столбца KPI_name таблицы History.

Таким образом, вывод должен быть: KPI_Table с (BU, KPI_Code, YTD, Actual, Deviation)

Надеюсь, я смогучтобы вы поняли, о чем я прошу.

Я перепробовал много кодов, но проблема в том, что Таблица кодов содержит только 30 строк и вывод Таблица истории после выполнениясодержит 90 строк, поэтому коды не отображаются правильно.

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

Это у вас работает?

select H.BU, C.KPI_Code, H.YTD, H.Actual, H.Deviation
from History H
inner join Codes C
on C.KPI_Name = H.KPI_Name
0 голосов
/ 20 марта 2012

Если я правильно понимаю вопрос, проблема в том, почему таблицы Codes содержат только 30 строк, тогда как History содержит 90. Вы должны просто посмотреть на значения в Коды , чтобы увидеть, какие отсутствуют.

Используя SQL, вы можете:

select h.KPI_Name, c.KPI_Code  
from History h  
left outer join Codes c on c.KPI_Name = h.KPI_Name

Как только вы поймете, что не так с преобразованием кода, вы можете добавить столбец KPI_Code в History, используя

alter table History add KPI_Code (data type)

Затем заполните его из кодов примерно так:

update History  
set KPI_Code = c.KPI_Code  
from History  
inner join Codes c on c.KPI_Name = History.KPI_Name

Если вы не можете понять, почему не работает генерация KPI_Code, опубликуйте этот код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...