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

Откуда:
Сообщений: 186
Всем привет!

Помогите понять логику как действовать дальше, пожалуйста...

У меня есть Таблица1, где я меняю один код на другой код с помощью update.
Например, меняю вместо кода "111" - ставлю "444" и только для проекта "ав". При этом кол-во остаётся.
Код Кол-во Проект
111 10 ав
111 1 бв


В другой Таблице2 есть информация по этим кодам. В частности там тоже есть кол-во, но нет разбивки по складам и проектам. И нужно, чтобы вычислялось, что у меня по этим кодам изменилось кол-во в Таблице1 за счёт изменения кодов и что кол-во также нужно менять в Таблице2.

Код Кол-во
111 11


В итоге в Таблице2 при изменении в Табл1 кода "111" на "444" должно быть:
Код Кол-во
444 10
111 1


Мне получается нужно вычесть и сделать update таблицы2. И тут я торможу. Как после update Таблицы1 высчитать, что у меня поменялось поле в большую или меньшую сторону... И потом сделать update Таблицы2..
21 май 14, 11:38    [16047031]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
Кавказ-сила
Member

Откуда: Москва
Сообщений: 261
C. Using OUTPUT INTO with an UPDATE statement
21 май 14, 11:44    [16047095]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
LisSp
Member

Откуда:
Сообщений: 186
Кавказ-сила
C. Using OUTPUT INTO with an UPDATE statement


но у меня эти таблицы никак не связаны друг с другом... Поэтому OUTPUT врятли подойдёт...
21 май 14, 11:46    [16047132]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
invm
Member

Откуда: Москва
Сообщений: 9830
Вместо второй таблицы сделайте индексированное представление с агрегированием количества.
21 май 14, 11:50    [16047191]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8811
Настройте внешний ключ в Таблице2 на Таблицу1 и каскадное обновление.
21 май 14, 11:54    [16047247]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Владислав Колосов
Настройте внешний ключ в Таблице2 на Таблицу1 и каскадное обновление.
А количество здесь при чём?
21 май 14, 11:56    [16047265]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
LisSp
Member

Откуда:
Сообщений: 186
Владислав Колосов
Настройте внешний ключ в Таблице2 на Таблицу1 и каскадное обновление.


мне нельзя менять что-либо в структуре базы данных.. только значение в поле поменять-это максимум(
21 май 14, 11:57    [16047292]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8811
iap
Владислав Колосов
Настройте внешний ключ в Таблице2 на Таблицу1 и каскадное обновление.
А количество здесь при чём?

Количество непричём, автору требуется каскадное обновление, судя по сообщению.
21 май 14, 12:06    [16047399]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
invm
Member

Откуда: Москва
Сообщений: 9830
Владислав Колосов
Количество непричём, автору требуется каскадное обновление, судя по сообщению.
Ну и как каскадным обновлением из
LisSp
Код Кол-во
111 11
получить
LisSp
Код Кол-во
444 10
111 1
?
21 май 14, 12:07    [16047421]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8811
LisSp, если все так плохо, почитайте про UPDATE Предложение OUTPUT в справке.
21 май 14, 12:08    [16047432]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8811
invm,
кажется понял, требуется чтобы во второй таблице появилась новая строка с новым кодом и количеством, а по старому коду было изменено количество. Тогда это решается простыми update и insert.
21 май 14, 12:15    [16047510]     Ответить | Цитировать Сообщить модератору
 Re: Вычитание полей в таблицах и запись  [new]
LisSp
Member

Откуда:
Сообщений: 186
Владислав Колосов
invm,
кажется понял, требуется чтобы во второй таблице появилась новая строка с новым кодом и количеством, а по старому коду было изменено количество. Тогда это решается простыми update и insert.


ну да..похоже на то.. попробую так! Спасибо!
21 май 14, 12:31    [16047616]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить