#sql #sql-server
#sql #sql-сервер
Вопрос:
Каков наилучший подход для добавления столбца в существующую таблицу со значениями, у меня есть следующие таблицы:
Table_A
ClientID, StatementID, CustBuy
Table_B
NewClientID
Я хочу добавить новый столбец YTD_Jan13
alter Table_A add YTD_Jan13 varchar(20)
select
(case
when CustBuy=0 and StatementID>='01.01.2013' then 'New YTD'
else 'Repead YTD'
end) as YTD_Jan13
from A inner join B
on A.ClientID = B.NewClientID
По сути, я хочу вставить значение в новый столбец (YTD_Jan13) со следующими условиями:
Если
1) Table_A.ClientID = Table_B.NewClientID
2) в Table_A (CustBuy=0 и StatementID>= ‘01.01.2013’) затем ‘Новый С начала года’
else ‘Повторить С начала года’
Я в замешательстве, я прошу вашей помощи Заранее спасибо, Хабиб
Ответ №1:
alter Table_A add YTD_Jan13 varchar(20)
Затем вставьте значение ‘else’ в
update Table_A Set YTD_Jan13 = 'Repeat YTD'
затем (это называется обновлением с присоединением)
UPDATE a
SET a.YTD_Jan13 = 'New YTD'
FROM Table_A a
INNER JOIN B
ON A.ClientID = B.ClientID
Where CustBuy = 0 and StatementID >= '01.01.2013'
NB Предполагается, что в A нет записей для клиентов, которых нет в B. Если есть, вам придется немного поумнеть, чтобы YTD_Jan13 в этих случаях оставался нулевым.