Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Access 2007 склад товаров, Access 2007 склад товаров 
:(
    Опции темы
serjpsv
Дата 27.3.2010, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.12.2009

Репутация: нет
Всего: нет



Доброй ночи, коллеги ) 
Помогите в ламерском вопросе... 

Необходимо создать 
- таблицу с товарами и их наличием на складе
- таблицу клиентов, заказчиков

В общих чертах должно быть так: входим в карточку клиента по его ID, затем добавляем товары в заказ, проводим
заказ. На складе количество товара минусуется..
как организовать сам процесс добавления товаров в заказ из склада и как сделать так, чтоб количество товаров на
складе уменьшалось после добавления в заказ???

подскажите плиз
PM MAIL   Вверх
bopoha
Дата 27.3.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Можно делать по разному. 
Я делал так. Таблица накладных, таблица материалов. В таблице материалов есть два поля количества: израсходовано и зарезервирвоано. В заказ выбираются материалы из соответствующей накладной. Т.к. какждая накладная адресовалась определенному клиенту.
PM MAIL WWW ICQ Skype GTalk   Вверх
chip_and_dayl
Дата 27.3.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Как сказал bopoha делать можно по разному. Допустим я остатки товара на данный момент считаю так:
Никаких дополнительных таблиц не создаю. Использую только существующие (таблица содержимого накладной). 
Есть таблица где содержаться рядки приходных и расходных накладных (я для этих целей использую одну таблицу), для того чтобы вывести остаток я делаю следующий запрос : 
сгруппировать все расходные позиции и умножить на -1
объединить  с 
сгруппированными позициями по приходу

Дальше результат который вышел выше группирую еще раз и у меня выходит остаток. Вывод остаток на основание прихода и расхода имеет свои плюсы и минусы. Плюс в том, что любое действие с накладной (допустим удаление позиции, редактирование и т.д.) сразу же отобразиться на результате. ВТорой плюс в том,  что во время выключение машины или какого-то сбоя  не будет проблем (если позиция не попала в приход, то она  и не попала в остатки. А если есть еще промежуточная таблица или отдельная таблица, которая ведет остатки независимо от прихода/расхода то могут возникнуть проблемы ).
Минус один: скорость



--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
serjpsv
Дата 28.3.2010, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.12.2009

Репутация: нет
Всего: нет



chip_and_dayl ,  я немного не понял структуру запросов.... если не сложно, напиши пример
PM MAIL   Вверх
chip_and_dayl
Дата 28.3.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: нет
Всего: 9



Значить для хранения приходных/расходных накладных я использую следующие таблицы:

1. Верхушки накладных

ИД   Тип (0-приход,1-расход и т.д.)       №накладной      Поставщик(ссылка на него)     Дата   и т.д.
     1          0                                                      ВН-124488                            2                          01.02.2010
     2          1                                                      78956                                    1                          13.08.2010
  
2. Содержимое накладных
№накладной (ссылка на таблицу1)         Код         Количество     Цена    Сума    и т.д.
            1                                                         127            10                  1          10
            1                                                         117            2                    1,2       2,40
            2                                                         127            8                    1          8
            2                                                         156            10                  1,5       15


Для получения остатков я делаю следующий запрос :

Код

// получаем количество, которое пришло на склад
select Код, Цена, Sum (Количество) from Таблица2
inner join Таблица1 on (Таблица2.№накладной=Таблица1.ИД)
where Тип=0
group by Код, цена
union all
// получаем количество расхода товара
select Код, Цена, Sum (Количество*(-1)) from Таблица2
inner join Таблица1 on (Таблица2.№накладной=Таблица1.ИД)
where Тип=1
group by Код, цена


В это запрос еще нужно вставить дату, на какое число остаток и т.д. Значить результат после такого запроса следующий:
Код    Цена    Кол.
127       1        10
117       1,2      2
127       1         -8
156       1,85    -10

Чтобы получить посчитанный остаток нужно запрос, что выше поправить:
Код

select Код, Цена, Sum (Кол)    from (select Код, Цена, Sum (Количество) as Кол  from Таблица2
inner join Таблица1 on (Таблица2.№накладной=Таблица1.ИД)
where Тип=0
group by Код, цена
union all
select Код, Цена, Sum (Количество*(-1)) as Кол from Таблица2
inner join Таблица1 on (Таблица2.№накладной=Таблица1.ИД)
where Тип=1
group by Код, цена) as Таб_Темп
Код, Цена, Sum (Количество) 


Получим:
Код    Цена    Кол.
127       1        2
117       1,2      2
156       1,85    -10



--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
serjpsv
Дата 29.3.2010, 09:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 14.12.2009

Репутация: нет
Всего: нет



Большое спасибо smile буду разбираться....
PM MAIL   Вверх
Petrelli
Дата 1.3.2011, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 1.3.2011

Репутация: нет
Всего: нет



chip_and_dayl, подскажите, пожалуйста, а если у меня склад "тупо" вбивается, т.е. количество, наименование товара и др. После чего, в таблице "Отгрузка" я указываю плательщика, наименование товара, кол-во покупаемого товара ну и несколько других полей (т.е. никаких Типов (0-приход,1-расход и т.д.) пока нет, т.к. только начинаю). Так вот, хотелось бы узнать, как будет выглядеть запрос в этом случае. Заранее спасибо!

Это сообщение отредактировал(а) Petrelli - 1.3.2011, 09:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.