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

Откуда:
Сообщений: 3
Доброго времени суток.
Есть две таблицы:
Первая содержит столбцы (Товар, Цена_за_штуку, Количество)
Вторая содержит столбцы (Товар, Стоимость)
Первая таблица заполнена значениями полностью, а вот у второй заполнен лишь столбец Товары (такие же значения как и в первой таблице)
В принципе с расчётом понятно
SELECT Товар, Цена_за_штуку*Количество  FROM Table1

А вот как записать рассчитанные значения в Таблицу2 в столбец Стоимость? Так как мне нужно будет брать данные из Таблицы 2, а не рассчитывать постоянно запросом.
Пробовал сделать через INSERT INTO но он добавляет новую запись, то есть это не то что необходимо...
Все названия взял для примера.
16 май 17, 01:23    [20483303]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36697
Запись изменяется командой update.
16 май 17, 01:46    [20483310]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
Renegade_93
Member

Откуда:
Сообщений: 3
Гавриленко Сергей Алексеевич, Так то оно так, но обновить-то необходимо рассчитанными данными, а UPDATE никак не хочет "дружить" c SELECT
16 май 17, 01:59    [20483317]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
Renegade_93
Member

Откуда:
Сообщений: 3
Всё разобрался
16 май 17, 02:28    [20483333]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27661
Renegade_93
Гавриленко Сергей Алексеевич, Так то оно так, но обновить-то необходимо рассчитанными данными, а UPDATE никак не хочет "дружить" c SELECT

А зачем ему дружить с SELECT? Он дружит с FROM.
В документации об этом написано и первый же пример про Таблицу2 и Таблицу1.

https://msdn.microsoft.com/ru-ru/library/ms177523.aspx
16 май 17, 09:23    [20483598]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
roundabout
Member

Откуда:
Сообщений: 13
UPDATE dbo.Table2
SET dbo.Table2.Стоимость = dbo.Table1.Цена * dbo.Table1.Количество
FROM dbo.Table2
INNER JOIN dbo.Table1
ON (dbo.Table2.Товар = dbo.Table1.Товар);
16 май 17, 14:04    [20485009]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
roundabout,

правильно, алиасы зло
16 май 17, 14:19    [20485078]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20222
Вообще лучше использовали бы Вы не UPDATE, а MERGE. А ну как попадётся в первой таблице товар, по какой-то причине отсутствующий во второй таблице...
16 май 17, 14:23    [20485104]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
roundabout
Member

Откуда:
Сообщений: 13
Akina,
В условии не сказано, что нужно добавлять данные.
16 май 17, 14:43    [20485241]     Ответить | Цитировать Сообщить модератору
 Re: Расчёт по двум столбцам и запись в другую таблицу  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20222
roundabout, это я автору вопроса...
16 май 17, 16:44    [20485986]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить