Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
Есть таблица TradePromoNeedSet в ней присутствуют столбцы PromoActionID , itemid
и надо из другой таблицы TradePromoResultSet перенести данные с PromoActionID = 2324 на PromoActionID = 2396
прошу помочь ,я начинающий прогер самоучка


insert into TradePromoNeedSet ([PromoActionID] , itemid)
/*?????? PromoActionID = 2396*/
select [PromoActionID]
,[ItemID]
from [TradePromoResultSet]
where PromoActionID = 2324
14 мар 17, 16:14    [20294238]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
iiyama
Member

Откуда:
Сообщений: 642
Pasher,
?

insert into TradePromoNeedSet ([PromoActionID] , itemid)
select 2396,[ItemID]
from [TradePromoResultSet] 
where PromoActionID = 2324
14 мар 17, 16:19    [20294274]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
iiyama
Member

Откуда:
Сообщений: 642
Pasher,
или лучше MERGE
если таблице назначения есть уже эти данные
14 мар 17, 16:21    [20294291]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
iiyama,я наверное не правильно выразился в селекте я выбираю именно нужные столбцы которые нужно скопировать из PromoActionID = 2324, и мне нужно скопировать эти выбранные данные в столбцы данных PromoActionID = 2396
14 мар 17, 16:22    [20294304]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
короче, хочет он сделать UPDATE
14 мар 17, 16:34    [20294364]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
Может просто логику объясните как это можно сделать,просто не могу уже 3 день додуматься(
15 мар 17, 08:11    [20296016]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Pasher
Может просто логику объясните как это можно сделать,просто не могу уже 3 день додуматься(

Рекомендую сменить род деятельности на менее умоемкий, возможно, ваш ЦПУ заточен на сгибание стальных балок.
15 мар 17, 11:05    [20296764]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
Pasher
Может просто логику объясните как это можно сделать,просто не могу уже 3 день додуматься(

не надо додумываться,
невозможно вспомнить то, чего "не знал, да забыл".
открываем хэлп и изучаем UPDATE (Transact-SQL)
15 мар 17, 11:22    [20296881]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
o-o,

Боюсь что мне нужно именно скопировать данные,а не проапдейтить их
15 мар 17, 11:35    [20296955]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
а как же тогда фразочка
Pasher
мне нужно скопировать эти выбранные данные в столбцы данных PromoActionID = 2396

вы показания на ходу меняете?
приведите пример того, что есть,
и того, что вам хочется получить
15 мар 17, 11:46    [20297045]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
0wl
Member

Откуда:
Сообщений: 56
Я так понимаю, нужен-таки MERGE: то, что было -- проапдейтить, чего не было -- добавить. Соединение, насколько я понял, по ItemID. В той же справке по мерджу пример такой задачи разобран
15 мар 17, 11:49    [20297069]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
0wl
Я так понимаю, нужен-таки MERGE: то, что было -- проапдейтить, чего не было -- добавить. Соединение, насколько я понял, по ItemID. В той же справке по мерджу пример такой задачи разобран

ему MERGE уже предлагали, и тоже со ссылкой:
iiyama
Pasher,
или лучше MERGE
если таблице назначения есть уже эти данные

ему не хватает только, чтобы *за него* это все прочитали и поняли
15 мар 17, 11:56    [20297117]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
o-o,
Есть таблица 1
PromoActionID ItemID
2324 16375863
2324 27133366
2324 16375870
2324 16375620
2324 27133259
2324 16375865
2324 27133361

И таблица 2
PromoActionID ItemID
2396 16375618
2396 16375620
2396 16375630
2396 16375632
2396 16375633
2396 16375634
2396 16375846

И надо чтоб была вот такая вот таблица
PromoActionID ItemID

2396 16375618
2396 16375620
2396 16375630
2396 16375632
2396 16375633
2396 16375634
2396 16375846
2396 16375863
2396 27133366
2396 16375870
2396 16375620
2396 27133259
2396 16375865
2396 27133361

Я понял что через временную таблицу это надо проделать.
15 мар 17, 12:53    [20297431]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
вам надо проапдэйтить (update) имеющиеся PromoActionID = 2324 новым значением 2396
и вставить (insert) все из второй таблицы, где PromoActionID = 2396
15 мар 17, 12:59    [20297467]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
o-o,

Спасибо,буду пробовать,и спасибо что все таки не закидали тапками, а помогли!
15 мар 17, 13:04    [20297516]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
Pasher,
INSERT INTO Table3 
(
PromoActionID,itemid
)
SELECT PromoActionID ,itemid
from [TradePromoResultSet] 
where PromoActionID = 2396	
UNION ALL 
SELECT 2396	itemid
from [TradePromoResultSet] 
where PromoActionID = 2324
15 мар 17, 13:06    [20297537]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
TaPaK
Pasher,
INSERT INTO Table3 
(
PromoActionID,itemid
)
SELECT PromoActionID ,itemid
from [TradePromoResultSet] 
where PromoActionID = 2396	
UNION ALL 
SELECT 2396	itemid
from [TradePromoResultSet] 
where PromoActionID = 2324

+ потом удалять имеющиеся PromoActionID = 2324?
он же показал, что в результате таких PromoActionID остаться не должно
15 мар 17, 13:15    [20297598]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
TaPaK
Pasher,
INSERT INTO Table3 
(
PromoActionID,itemid
)
SELECT PromoActionID ,itemid
from [TradePromoResultSet] 
where PromoActionID = 2396	
UNION ALL 
SELECT 2396	itemid
from [TradePromoResultSet] 
where PromoActionID = 2324

+ потом удалять имеющиеся PromoActionID = 2324?
он же показал, что в результате таких PromoActionID остаться не должно
ну я так понимаю что речь идёт о третьей таблице :)
15 мар 17, 13:21    [20297633]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
я в его первом посте вижу 2 таблицы.
но если их все же 3, пускай об этом сообщит
15 мар 17, 13:26    [20297678]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
o-o
я в его первом посте вижу 2 таблицы.
но если их все же 3, пускай об этом сообщит
день недосказанности и загадок :)
15 мар 17, 13:27    [20297685]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
o-o
Guest
TaPaK
o-o
я в его первом посте вижу 2 таблицы.
но если их все же 3, пускай об этом сообщит
день недосказанности и загадок :)

вообще-то уже тенденция.
не могут толком сформулировать, чего хотят,
при этом еще и выступают.
не в этой теме, так в соседней
------------------
Pasher,
в вашем примере есть таблица 1 и таблица 2.
а результат это:
а) таблица 1 (которая уже имеется)
б) таблица 3, которую надо сформировать самим
?
15 мар 17, 13:40    [20297758]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
o-o,
извиняюсь,не мог нормально сформулировать задание,только учусь,спасибо за ответы и терпение!
в вашем примере есть таблица 1 и таблица 2.
а результат это:
таблица 3, которую надо сформировать самим
15 мар 17, 13:55    [20297836]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
iiyama
Member

Откуда:
Сообщений: 642
Pasher,
Может лучше сделать VIEW на основе 2 базовых таблиц, чтобы потом не появилось топика, как восстановить БД из бэкапа?
Возьмите скрипт TaPaK и замените INSERT на Create View, а потом делайте запросы из представления
15 мар 17, 14:06    [20297894]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
iiyama,

Спасибо,сейчас попробую
15 мар 17, 14:09    [20297906]     Ответить | Цитировать Сообщить модератору
 Re: Копирование данных из одной таблицы в другую  [new]
Pasher
Member

Откуда:
Сообщений: 34
Сделал вот так
но все равно выдает ошибку,кто может пояснить в чем проблема?
create table #test(ActionID bigint,ItemID bigint)

INSERT INTO #test(ActionID,itemid)

SELECT tpn.PromoActionID ,tpn.itemid
from TradePromoNeedSet as tpn
inner join TradePromoActions as tpa on tpa.ID = tpn.PromoActionID
where tpa.name like '%8+4%обл%' and tpa.StartDate = '01.02.2017'
group by tpn.PromoActionID ,tpn.itemid

update #test
set ActionID = tpr.PromoActionID
from(SELECT tpn1.PromoActionID ,tpn1.itemid
from TradePromoNeedSet as tpn1
inner join TradePromoActions as tpa on tpa.ID = tpn1.PromoActionID
where tpa.name like '%8+4%обл%' and tpa.StartDate = '01.03.2017'
group by tpn1.PromoActionID ,tpn1.itemid) as tpr


INSERT INTO TradePromoNeedSet(PromoActionID,itemid)
select ActionID,itemid
from #test


Ошибки:
Сообщение 207, уровень 16, состояние 1, строка 7
Недопустимое имя столбца "ActionID".
Сообщение 207, уровень 16, состояние 1, строка 16
Недопустимое имя столбца "ActionID".
15 мар 17, 16:06    [20298682]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить