![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
![]()
Здравствуйте!
Есть 2 таблицы: prihod ([N], [Наименование], [Цена], [Количество]) и tovar ([Id товара], [Наименование], [Цена], [Количество], [N]) "Приход товара" заполняем товаром и записи переносятся в "Базу товара". Если придёт товар с таким же наименованием и ценой, который уже есть в Базе товара, нужно, чтобы прибавлялось только количество. (Например Стол за 1000 р. уже есть - 2 шт., пришло ещё 3, значит надо, чтоб в базу не добавилась новая запись, а в количестве Стола стало 5). Помогите с запросом. Пыталась что-то написать, но получается подобная муть... Код:
Т.е. иначе говоря, если prihod.[Наименование]=tovar.[Наименование] и prihod.[Цена]=tovar.[Цена], надо чтобы запись в таблицу tovar не добавлялась, а только изменялось поле [Количество]: tovar.[Количество]=tovar.[Количество]+prihod.[Количество] |
![]() |
![]() |
![]() |
#2 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
![]()
Записи в таблицу ПРИХОД тебе в любом случае нужно добавлять (так будет удобнее), а отображать уже все эти записи можно при помощи группировки
Код:
|
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Если ваша СУБД поддерживает триггера, то в триггере на вставку в Prihod это можно спокойно реализовать. Можно через пользовательскую процедуру (опять же, если поддерживается) реализовать вставку в Prihod и соответствуюзее обновление Tovar. Иначе решайте программно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.12.2007
Сообщений: 87
|
![]() Код:
P.S Полностью согласен с высказыванием Gulik так делать лучше и правильней, так как если вам нужны будут сложные отчеты могут возникнуть трудности, но дело ваше! |
![]() |
![]() |
![]() |
#6 |
Холост/Не замужем
Форумчанин
Регистрация: 13.11.2007
Сообщений: 283
|
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
![]()
KAMENYKA, спасибо большое
![]() Gulik, ооо, спасибо за пример! )) Всем спасибо! ![]() KAMENYKA, вот в этих строках, там где слово "значение", так и должно быть или там вписать какое-то значение? Код:
И ещё на первой строке из этих двух выдает ошибку: Incorrect syntax near the keyword 'SELECT'. Последний раз редактировалось Stilet; 06.08.2011 в 11:21. |
![]() |
![]() |
![]() |
#8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
TOP(1) замени на просто TOP 1
P.S. СУБД нужно указывать.
I'm learning to live...
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.10.2010
Сообщений: 78
|
![]() |
![]() |
![]() |
![]() |
#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 |