|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.08.2011, 23:35 | #1 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
Запрос на обновление строки в таблице
Здравствуйте!
Есть 2 таблицы: prihod ([N], [Наименование], [Цена], [Количество]) и tovar ([Id товара], [Наименование], [Цена], [Количество], [N]) "Приход товара" заполняем товаром и записи переносятся в "Базу товара". Если придёт товар с таким же наименованием и ценой, который уже есть в Базе товара, нужно, чтобы прибавлялось только количество. (Например Стол за 1000 р. уже есть - 2 шт., пришло ещё 3, значит надо, чтоб в базу не добавилась новая запись, а в количестве Стола стало 5). Помогите с запросом. Пыталась что-то написать, но получается подобная муть... Код:
Т.е. иначе говоря, если prihod.[Наименование]=tovar.[Наименование] и prihod.[Цена]=tovar.[Цена], надо чтобы запись в таблицу tovar не добавлялась, а только изменялось поле [Количество]: tovar.[Количество]=tovar.[Количество]+prihod.[Количество] |
05.08.2011, 09:49 | #2 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
Записи в таблицу ПРИХОД тебе в любом случае нужно добавлять (так будет удобнее), а отображать уже все эти записи можно при помощи группировки
Код:
|
05.08.2011, 10:56 | #3 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
Спасибо
Но задача состоит не в этом. Есть 2 ТАБЛИЦЫ: prihod и tovar. Добавление строк в приход происходит обычным запросом Код:
Код:
Если записи, которые мы хотим добавить из prihod в tovar уже есть, а именно prihod.[Наименование]=tovar.[Наименование] и prihod.[Цена]=tovar.[Цена] (это всё уже было описано выше), то тогда в таблицу tovar не добавляем новую запись, а только добавляем количество. Так это всё должно выглядеть: Эту запись хотим добавить в таблицу tovar: prihod |_Наименование_|_Цена_|_Количество_ | |__Табуретка___|_2000_|______7_____ | Но в таблице tovar уже есть Табуретка за 2000 р., но только 3 шт. tovar | Табуретка | 2000 | 7 | Значит после добавления записи из prihod в tovar, запись в таблице tovar должна выглядеть так: tovar | Табуретка | 2000 | 10 | , т.е. к количеству в tovar приплюсуется количество из prihod. А запрос обычной вставки из prihod в tovar такой: Код:
Последний раз редактировалось Stilet; 05.08.2011 в 20:54. |
05.08.2011, 11:13 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если ваша СУБД поддерживает триггера, то в триггере на вставку в Prihod это можно спокойно реализовать. Можно через пользовательскую процедуру (опять же, если поддерживается) реализовать вставку в Prihod и соответствуюзее обновление Tovar. Иначе решайте программно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
05.08.2011, 12:16 | #5 |
Пользователь
Регистрация: 06.12.2007
Сообщений: 87
|
Код:
P.S Полностью согласен с высказыванием Gulik так делать лучше и правильней, так как если вам нужны будут сложные отчеты могут возникнуть трудности, но дело ваше! |
05.08.2011, 15:04 | #6 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
|
05.08.2011, 20:48 | #7 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
KAMENYKA, спасибо большое )) Согласна, что удобней писать латинскими буквами, но преподаватель просит русские...
Gulik, ооо, спасибо за пример! )) Всем спасибо! KAMENYKA, вот в этих строках, там где слово "значение", так и должно быть или там вписать какое-то значение? Код:
И ещё на первой строке из этих двух выдает ошибку: Incorrect syntax near the keyword 'SELECT'. Последний раз редактировалось Stilet; 06.08.2011 в 11:21. |
06.08.2011, 11:22 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
TOP(1) замени на просто TOP 1
P.S. СУБД нужно указывать.
I'm learning to live...
|
07.08.2011, 00:56 | #9 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
|
07.08.2011, 01:27 | #10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
1. SELECT TOP 1 @Col=[Количество] FROM prihod WHERE prihod.[Наименование] = значение AND prihod.[Цена]= значение
2. значение из вставляемой записи прихода ADD - вариант для вставки, проще пожалуй не придумать Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 07.08.2011 в 12:11. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
автоматическое обновление таблице через запрос sql | eda | Microsoft Office Excel | 8 | 19.04.2011 12:47 |
Обновление записей в таблице | ua3pno | Microsoft Office Access | 4 | 20.02.2011 19:56 |
запрос на обновление!!!!! | Andel 013 | Microsoft Office Access | 2 | 23.12.2010 23:06 |
Обновление данных в сводной таблице | Tolikv | Microsoft Office Excel | 13 | 11.06.2010 14:54 |
Обновление данных в основной таблице из выделенных ячеек дополнительной | semjenion | Microsoft Office Excel | 6 | 09.04.2010 17:52 |