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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление данных в несколько таблиц 
:(
    Опции темы
Fishb1
Дата 13.2.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

У меня есть база данных складского учета.
В ней 3 таблицы.
таб1-таблица приход материалов;
таб2-склад;
таб3-списание материалов;

По логике должно работать так:
Приходит материал(таб 1) , далле данные из таблицы таб1 должны добавляться в таблицу таб2, но если какие материалы из таб1 совпадают с материалами из таб2, то должны просто суммироваться, а не добавляться как новая запись. Списание материала должно проводится примерно так, таблица таб3 должна брать данные о материале из таблицы таб2(с помощью полей подстановок) при этом количесво которое указано в таб3 должно отниматься от количества из таб2.

На практике не знаю как сделать,помогите пожалуйста.

Если что то не понятно пишите.
PM MAIL   Вверх
Akina
Дата 13.2.2009, 17:34 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(Fishb1 @  13.2.2009,  18:29 Найти цитируемый пост)
В ней 3 таблицы.
таб1-таблица приход материалов;
таб2-склад;
таб3-списание материалов;

Это безобразие - размазывание одной сущности по трём таблицам и хранение переопределённых данных.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fishb1
Дата 13.2.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Посоветуйте пожалйста как лучше сделать.
PM MAIL   Вверх
Akina
Дата 13.2.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fishb1
Дата 13.2.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Akina @ 13.2.2009,  17:42)
В ней - материал и вид операции (приход, расход) - причём типов прихода/расхода может быть несколько (закупка или возврат из цеха, выдача в работу или списание, и т.п.), 

Вы имеете ввиду приход/расход делать в одной таблицы, только при это в отдельном поле указывать причину?
PM MAIL   Вверх
FINANSIST
Дата 13.2.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Статус: Жив
**


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

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



Цитата

В ней 3 таблицы.
таб1-таблица приход материалов;
таб2-склад;
таб3-списание материалов;

ААА, КАКОЙ УЖАС!!! smile 
читайте матчасть по нормализации баз данных

Вариант структуры № 1  (как пример)
Код

Дата операции| Приход | Расход | Субконто1(напр.Цена Поставки)| Субконто2(напр.Номер партии)|Субконто3(напр.Наименование SKU, лучше ID SKU)|Субконто4(напр.ID поставщика)|.......СубконтоN|

Вариант 2 совмещаем  аналитики Приход/Расход в одну "Оборот", притоки оформляем знаками + ;оттоки  -
Код

Дата операции| Оборот | Субконто1(напр.Цена Поставки)| Субконто2(напр.Номер партии)|Субконто3(напр.Наименование SKU, лучше ID SKU)|Субконто4(напр.ID поставщика)|.......СубконтоN|

От ID аналитик связка к Primary Key Справочников соответствующих аналитик
Рассчитать начальные и конечные сальдовки при такой структуре - ну вообще никаких проблем!
Сальдо начальное на 31/12/2008 ( то бишь остатки на складе) по Варианту 2
Код

select Sum(Оборот) AS  Остаток на складе, ЦенаПоставки, ДатаОперации, НаименованиеSKU from ОБОРОТЫНАСКЛАДЕ WHERE НаименованиеSKU="Водка" and ДатаОперации<'31/12/2008';

Оборот Водки за новогодние праздники (12 го кажется кончились)
Код

select Sum(Оборот) AS  Обороты на складе, ЦенаПоставки, ДатаОперации, НаименованиеSKU from ОБОРОТЫНАСКЛАДЕ WHERE НаименованиеSKU="Водка" and ДатаОперации between '31/12/2008' and '12/01/2009';

Сальдо конечное
Код

select Sum(Оборот) AS  Остаток на складе, ЦенаПоставки, ДатаОперации, НаименованиеSKU from ОБОРОТЫНАСКЛАДЕ WHERE НаименованиеSKU="Водка" and ДатаОперации<'13/01/2009';

Можно результаты запросов воткнуть в отдельную таблицу а ля "РегистрыОстатков"
(Поступал так, когда было необходимо хранить дополнительные агрегированные расчёты по всем аналитикам для формирования OLAP-кубов)







Это сообщение отредактировал(а) FINANSIST - 13.2.2009, 18:54


--------------------
“...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности”
Эдуард Успенский, “Каникулы в Простоквашино”
PM MAIL ICQ   Вверх
bopoha
Дата 13.2.2009, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Fishb1, любые правила нарушать можно, если вы знаете зачем вы их нарушаете.

В Вашем случае я бы действительно обошелся 2-я таблицами.
1-я таблица - накладкная
Код накладной (счетчик)
Номер накладной
... '-- др. поля накладной

3-я Таблица товар 
Код товара 
Код накладной  (счетчик)
Код наименования товара
Количество товара
Количество списанного товара
Сумма за единицу
'-- прочите поля


3-я таблица - наименования товара
Код наименования товара
Наименование товара

В результате списание товара сводится к увеличению "Количество списанного товара" до значения поля "Количество товара". То, что товар повторяется нет ничего страшного. Главное учет!

P.S. В моем случае поле "Количество списанного товара" разделилось на два: Зарезервировано и Списано. Что очень удобно!
PM MAIL WWW ICQ Skype GTalk   Вверх
Fishb1
Дата 14.2.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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

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


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

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


 




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


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

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