![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Fishb1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Здравствуйте.
У меня есть база данных складского учета. В ней 3 таблицы. таб1-таблица приход материалов; таб2-склад; таб3-списание материалов; По логике должно работать так: Приходит материал(таб 1) , далле данные из таблицы таб1 должны добавляться в таблицу таб2, но если какие материалы из таб1 совпадают с материалами из таб2, то должны просто суммироваться, а не добавляться как новая запись. Списание материала должно проводится примерно так, таблица таб3 должна брать данные о материале из таблицы таб2(с помощью полей подстановок) при этом количесво которое указано в таб3 должно отниматься от количества из таб2. На практике не знаю как сделать,помогите пожалуйста. Если что то не понятно пишите. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Это безобразие - размазывание одной сущности по трём таблицам и хранение переопределённых данных. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Fishb1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Посоветуйте пожалйста как лучше сделать.
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Одна таблица. В ней - материал и вид операции (приход, расход) - причём типов прихода/расхода может быть несколько (закупка или возврат из цеха, выдача в работу или списание, и т.п.), для этого существует отдельная таблица операций. А текущие остатки считаются простейшим запросом.
И всё, собсно... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Fishb1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Вы имеете ввиду приход/расход делать в одной таблицы, только при это в отдельном поле указывать причину? |
|||
|
||||
FINANSIST |
|
||||||||||||
Статус: Жив ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 11.4.2008 Где: Москва Репутация: 1 Всего: 23 |
ААА, КАКОЙ УЖАС!!! ![]() читайте матчасть по нормализации баз данных Вариант структуры № 1 (как пример)
Вариант 2 совмещаем аналитики Приход/Расход в одну "Оборот", притоки оформляем знаками + ;оттоки -
От ID аналитик связка к Primary Key Справочников соответствующих аналитик Рассчитать начальные и конечные сальдовки при такой структуре - ну вообще никаких проблем! Сальдо начальное на 31/12/2008 ( то бишь остатки на складе) по Варианту 2
Оборот Водки за новогодние праздники (12 го кажется кончились)
Сальдо конечное
Можно результаты запросов воткнуть в отдельную таблицу а ля "РегистрыОстатков" (Поступал так, когда было необходимо хранить дополнительные агрегированные расчёты по всем аналитикам для формирования OLAP-кубов) Это сообщение отредактировал(а) FINANSIST - 13.2.2009, 18:54 -------------------- “...Брали корову рыжую одну, отдавать будем корову рыжую одну, чтобы не нарушать отчетности” Эдуард Успенский, “Каникулы в Простоквашино” |
||||||||||||
|
|||||||||||||
bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Fishb1, любые правила нарушать можно, если вы знаете зачем вы их нарушаете.
В Вашем случае я бы действительно обошелся 2-я таблицами. 1-я таблица - накладкная Код накладной (счетчик) Номер накладной ... '-- др. поля накладной 3-я Таблица товар Код товара Код накладной (счетчик) Код наименования товара Количество товара Количество списанного товара Сумма за единицу '-- прочите поля 3-я таблица - наименования товара Код наименования товара Наименование товара В результате списание товара сводится к увеличению "Количество списанного товара" до значения поля "Количество товара". То, что товар повторяется нет ничего страшного. Главное учет! P.S. В моем случае поле "Количество списанного товара" разделилось на два: Зарезервировано и Списано. Что очень удобно! |
|||
|
||||
Fishb1 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 21.7.2005 Репутация: нет Всего: нет |
Спасибо большое за помощь.
Буду делать на двухтаблицах, так действительно проще. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "MS Access" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | MS Access | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |