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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MS Access] БД компьютерного магазина, Задача проектирования 
:(
    Опции темы
Treod
Дата 30.4.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Хотелось бы услышать советов по поводу проектирования БД компьютерного магазина. Ниже приведена схема данных. Посоветуйте пожалуйста что добавить, либо изменить.

user posted image
PM MAIL ICQ   Вверх
kapbepucm
Дата 30.4.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  30.4.2008,  18:19 Найти цитируемый пост)
Посоветуйте пожалуйста что добавить, либо изменить.
Я бы из таблицы "Заказы" убрал бы "Код товара"; создал ещё одну таблицу "Стороки заказов"
Код
=========================
   Стороки заказов
-------------------------
  LineID
  Код заказа
  Код товара
  Количество
=========================


Добавлено через 8 минут и 4 секунды
Потому как, если, конечно, я не ошибаюсь, на данный момент получается, что в определённом заказе будет только один определённый товар. Также не определено количество товара для конкретного заказа. smile 


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
bopoha
Дата 30.4.2008, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я бы из Товаров выделил бы Наименование и Характеристики в справочник. Одинаковых товаров может пройти уйма.
И вместо русских символов использовал бы латиницу. Вместо Код писал бы как и вторичные ключи - Код товара.
Никаких пробелов в именах. Вдруг будет два пробела - большая проблемма с поиском ошибки.

По поводу латиницы:
b_[имя_таблицы] (b - база, часто изменяемые данные. Для справочников будет s)
K_[имя_таблицы] - счетчик
T_[постфикс] - текст
N_[постфикс] - число
F_[постфикс] - логический

И так далее. Очень удобно. Если не известен постфик, то берется имя таблицы. В результате в запросах никогда не перепутаете, что это за поле. Абстрактных полей типа, дата тоже нужно избегать. D_ZAKAZ - будет гораздо понятней при сравнении с D_POSTAVKA.

В целях экономии места и некоторого облегчения заполнения, можно Адрес разбить на состовляющие. Справочник улиц позволит не писать наименование полностью. 

В общем рюшечек можно много еще привести. Задавайте более конкретные вопросы. Нам ведь не извесны требования к БД.

kapbepucm, зачем это?
Цитата(kapbepucm @  30.4.2008,  19:28 Найти цитируемый пост)
Я бы из таблицы "Заказы" убрал бы "Код товара"; создал ещё одну таблицу "Стороки заказов"



Это сообщение отредактировал(а) bopoha - 30.4.2008, 19:44
PM MAIL WWW ICQ Skype GTalk   Вверх
kapbepucm
Дата 30.4.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ещё предложение. Вместо трёх таблиц "Клиенты", "Менеджеры", "Поставщик" сделать одну.
Всё вышеупомянутое носит рекомендательный характер и не принуждает ни к каким действиям smile 


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
bopoha
Дата 30.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(kapbepucm @  30.4.2008,  19:44 Найти цитируемый пост)
Ещё предложение. Вместо трёх таблиц "Клиенты", "Менеджеры", "Поставщик" сделать одну.


Аргументировали бы хоть. Поля одинаковые? Так роли очень разные. В целях оптимизации выборки, меньшего хаоса и улучшения сопровождаемости, лучше три таблицы. Т.к. с течением времени БД меняется.

Это сообщение отредактировал(а) bopoha - 30.4.2008, 19:47
PM MAIL WWW ICQ Skype GTalk   Вверх
kapbepucm
Дата 30.4.2008, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(bopoha @  30.4.2008,  19:43 Найти цитируемый пост)
зачем это?
В принципе я описал...
Цитата(kapbepucm @  30.4.2008,  19:28 Найти цитируемый пост)
Потому как, если, конечно, я не ошибаюсь, на данный момент получается, что в определённом заказе будет только один определённый товар. Также не определено количество товара для конкретного заказа.


Добавлено через 1 минуту и 7 секунд
Цитата(bopoha @  30.4.2008,  19:46 Найти цитируемый пост)
Так роли очень разные
Разве ж очень?

Добавлено через 6 минут и 31 секунду
Ну, по крайней мере, сам разрабатывал и до сих пор поддерживаю складскую БД, где партнёры и работники склада в одной таблице. Клиенты не жалуются smile

Добавлено через 12 минут и 8 секунд
bopoha,если вас не затруднит, приведите хотя-бы маленький примерчик, где моя структура не совершенна.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
bopoha
Дата 30.4.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



kapbepucm, не беспокойтесь совершенных структур БД не бывает. 

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

Вот, наверное, это все.
PM MAIL WWW ICQ Skype GTalk   Вверх
Treod
Дата 30.4.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть небольшой вопрос. Товар будет поставляться с одной стоимостью, а сбываться с надбавкой. Мне придется в таблицу товар включить поля стоимость закупки, стоимость продажи? Или можно сделать по другому?
PM MAIL ICQ   Вверх
Treod
Дата 1.5.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Моя схема данных приняла такой вид:

user posted image


Но появилась небольшая проблема.
В свойствах поля стоимость продажи в данных прописываю формулу: =([Стоимость закупки])*1,3. В форме все работает нормально. Идет надбавка 30%, но в  поле стоимость продажи данные не вносятся. Почему?




Это сообщение отредактировал(а) Treod - 1.5.2008, 15:01
PM MAIL ICQ   Вверх
kapbepucm
Дата 1.5.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Treod, а у вас всем товарам при продаже будет одинаковая наценка 30%?

Добавлено через 5 минут и 34 секунды
Если да, то поле "стоимость продажи" не совсем нужно...


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kapbepucm
Дата 1.5.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если нет, то можно сделать какую нибудь структуру, которая бы по умолчанию добавляла 30%, но по желанию менеджера могла-бы и меняться. Для менеджера это могло бы выглядеть как прайс-лист. Ну а вообще, если к каждому клиенту имеется индивидуальный подход, неплохо бы добавить в таблицу "Строки заказа" поле "цена", которая по умолчанию бралась бы из прайс-листа, но по желанию менеджера могла-бы меняться.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 1.5.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Цитата

Treod, а у вас всем товарам при продаже будет одинаковая наценка 30%?


Да, всем товарам будет наценка 30%. 

Цитата

Если да, то поле "стоимость продажи" не совсем нужно...


А как я могу обойтись без этого поля?
PM MAIL ICQ   Вверх
kapbepucm
Дата 1.5.2008, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  1.5.2008,  17:04 Найти цитируемый пост)
А как я могу обойтись без этого поля? 
Имею ввиду то, что хранить в таблице туже самую цену, только умноженную на 1,3 необязательно. Например, нехитрый запрос бы и сам посчитал нужную цену продажи.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 1.5.2008, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Имею ввиду то, что хранить в таблице туже самую цену, только умноженную на 1,3 необязательно. Например, нехитрый запрос бы и сам посчитал нужную цену продажи.


Можно конкретный пример запроса?

Это сообщение отредактировал(а) Treod - 1.5.2008, 18:16
PM MAIL ICQ   Вверх
kapbepucm
Дата 1.5.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ну, например:
Код
SELECT (Field1*1.3)as Field2 from Table1


Это сообщение отредактировал(а) kapbepucm - 1.5.2008, 20:25


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 2.5.2008, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

SELECT (Field1*1.3)as Field2 from Table1


 Как сделать с помощью этого запроса, чтобы в поле "Стоимость продажи" автоматически добавлялась сумма?

SQl запрос в моем случае примет вид:
Код

SELECT (([Стоимость закупки])*1.3) AS [Стоимость продажи]
FROM Товары;


Или же придется вручную обращаться к запросу и копировать стоимость продажи?

Это сообщение отредактировал(а) Treod - 2.5.2008, 15:43
PM MAIL ICQ   Вверх
kapbepucm
Дата 2.5.2008, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для чего в таблице "Товары" поле "Количество"?

Цитата(Treod @  2.5.2008,  15:30 Найти цитируемый пост)
Как сделать с помощью этого запроса, чтобы в поле "Стоимость продажи" автоматически добавлялась сумма?
В таблице "товары"?

Это сообщение отредактировал(а) kapbepucm - 2.5.2008, 20:01


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 2.5.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Цитата

Для чего в таблице "Товары" поле "Количество"?

Количество товара.

Цитата

В таблице "товары"?

Да)

Это сообщение отредактировал(а) Treod - 2.5.2008, 20:12
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  2.5.2008,  20:11 Найти цитируемый пост)
Количество товара
Количество товара в определённом заказе или остаток товара на складе магазина?
Цитата(Treod @  2.5.2008,  20:11 Найти цитируемый пост)
Да
Зачем?

Добавлено через 1 минуту и 50 секунд
Цитата(kapbepucm @  1.5.2008,  17:43 Найти цитируемый пост)
хранить в таблице туже самую цену, только умноженную на 1,3 необязательно



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ниже приведена форма поставки. Мне необходимо, чтобы при занесении в поле "Стоимость закупки" данных, автоматически данные переносились в поле "Стоимость продажи" с наценкой.

user posted image

Добавлено через 1 минуту и 40 секунд

Цитата

Количество товара в определённом заказе или остаток товара на складе магазина?


Количество поставляемого товара.

Добавлено через 3 минуты и 25 секунд
Может у меня не хватает таблицы? Таблица Товары у меня одна. Она используется и при поставке и при заказе товара. Может посоветуете какую еще добавить таблицу?
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Наконец до меня дошло... smile
Я бы объединил таблицы:
1)"Клиенты" и "Поставщик" в "Партнёры"
2)"Заказы" и "Поставка" в "Документы"
3)"Строки заказа" стали бы "Строки документа". Ну и количество если это заказ умножать на (-1)
Ну а если оставлять так, то:
1)Нужна ещё таблица наподобие "Строки заказа" между "Товары" и "Поставка"
Код
===========================
    Строки поставки
---------------------------
  LineID
  Код поставки
  Код товара
  Количество
===========================
2)Из таблицы "Товары" убрать "Количество", "Код поставки", "Стоимость продажи". Таблица "Товары" будет содержать параметры товаров.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А может же быть, что в таблице "Товары" не будет конкретно поставляемого товара. Или сначала его необходимо внести в таблицу "Товары"?

Большое спасибо за помощь, но все же имеются еще пару вопросов:
1) В таблице "Товары" будут содержаться товары, имеющиеся в мвгазине? .
2) Как я могу убрать из таблицы "Товары" поле "Стоимость продажи"? Попробую объяснить на примере. Допустим в магазин поставляется товар от фирмы ООО "ХХХ". Поставляется процессор стоимостью 5600 руб. Клиенту мы его продаем уже за 6000 руб. Где будет храниться стоимость товара, когда мы осуществляем продажу?

Добавлено через 1 минуту и 24 секунды

Может необходима таблица "Склад магазина"?
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  12:46 Найти цитируемый пост)
А может же быть, что в таблице "Товары" не будет конкретно поставляемого товара. Или сначала его необходимо внести в таблицу "Товары"?
Чаще всего так и есть. В таблице товары, если будут произведены мною упомянутые манипуляции, хранится "отсранённая" информация, которая к складу магазина особо и не относится. Там хранится описание кодов, которые задействованы в неких документах. При регистрации закупки сначала создаётся товар.

Добавлено через 4 минуты и 42 секунды
Мне непонятно следуещее:
Цитата(Treod @  3.5.2008,  12:46 Найти цитируемый пост)
Поставляется процессор стоимостью 5600 руб. Клиенту мы его продаем уже за 6000 руб

Цитата(Treod @  1.5.2008,  17:04 Найти цитируемый пост)
Да, всем товарам будет наценка 30%. 

5600*1.3=7280


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Значит все же следует создать таблицу "Склад товаров"? Или можно обойтись и без нее?
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  12:46 Найти цитируемый пост)
Может необходима таблица "Склад магазина"
Думаю, что нет. Остаток может посчитать запрос.


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Думаю, что нет. Остаток может посчитать запрос.


Если не сложно, можно привести листинг запроса? Буду благодаренsmile

Думаю можно добавить поле "Наличие товара".

Добавлено через 2 минуты и 6 секунд

И еще вопрос:
Что же делать со стоимостью продажи? Или просто оставить поле "Цена товара"?
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  15:27 Найти цитируемый пост)
Думаю можно добавить поле "Наличие товара"
Думаю не стоит. Запрос всё наидет что есть, а чего нет на складе.
Цитата(Treod @  3.5.2008,  15:27 Найти цитируемый пост)
Что же делать со стоимостью продажи? Или просто оставить поле "Цена товара"?
Для начала просветлите меня

Цитата(kapbepucm @  3.5.2008,  15:16 Найти цитируемый пост)
Мне непонятно следуещее:

Цитата(Treod @  3.5.2008,  12:46 )
Поставляется процессор стоимостью 5600 руб. Клиенту мы его продаем уже за 6000 руб



Цитата(Treod @  1.5.2008,  17:04 )
Да, всем товарам будет наценка 30%. 


5600*1.3=7280 




--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

5600*1.3=7280 


Я просто привел пример, не стал уж вычислять 30%.

По сути всем товарам будет одинаковая надценка.

Добавлено через 1 минуту и 49 секунд
А как будет выглядеть запрос, который подсчитывает остаток?
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  15:27 Найти цитируемый пост)
Что же делать со стоимостью продажи? Или просто оставить поле "Цена товара"? 
Запустите вот этот запрос, я думаю часть вопросов отпадёт:
Код
SELECT ([Строки заказа].[Код]) AS [Код документа], [Товары].[Наименование], [Строки заказа].[Количество], ([Товары].[Стоимость закупки]*1.3) AS [Стоимость подажи], ([Строки заказа].[Количество]*([Товары].[Стоимость закупки]*1.3)) AS Сумма
FROM [Строки заказа] LEFT JOIN Товары ON [Строки заказа].[Код товара]=[Товары].[Код];

Цитата(Treod @  3.5.2008,  15:40 Найти цитируемый пост)
А как будет выглядеть запрос, который подсчитывает остаток?
Гм... С тои схемой, которая у вас сейчас на данный момент- не знаю. Может всё же произведёте одну из двух манипуляций?
1)
Цитата(kapbepucm @  3.5.2008,  11:14 Найти цитируемый пост)
Я бы объединил таблицы:
1)"Клиенты" и "Поставщик" в "Партнёры"
2)"Заказы" и "Поставка" в "Документы"
3)"Строки заказа" стали бы "Строки документа". Ну и количество если это заказ умножать на (-1)

2)
Цитата(kapbepucm @  3.5.2008,  11:14 Найти цитируемый пост)
1)Нужна ещё таблица наподобие "Строки заказа" между "Товары" и "Поставка"
Код
===========================
    Строки поставки
---------------------------
  LineID
  Код поставки
  Код товара
  Количество
===========================
2)Из таблицы "Товары" убрать "Количество", "Код поставки", "Стоимость продажи". Таблица "Товары" будет содержать параметры товаров. 


Добавлено через 3 минуты и 8 секунд
В этих двух вариантах- знаю smile


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Провел 2-ую манипуляцию.

user posted image

Добавлено @ 18:26

Цитата

Запустите вот этот запрос, я думаю часть вопросов отпадёт:


С запросом то мне все понятно. Вводим стоимость товара, выводится стоимость продажи.
Вот листинг моего запроса:
Код

SELECT Товары.Код, Товары.Наименование, (([Цена товара])*1.3) AS [Стоимость продажи]
FROM Товары;


 Но как сделать, чтобы стоимоть продажи сразу вносилась в таблицу "Товары" поле "стоимость продвжи"?

Это сообщение отредактировал(а) Treod - 3.5.2008, 18:34
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  18:15 Найти цитируемый пост)
Вводим стоимость товара, выводится стоимость продажи
Нет. Вводим код товара (конечно необязательно код, для конечного пользователя можно сделать раскрывающийся список, и код, который нужен, сам введётся) вводим количество, а всё остальное самостоятельно где надо посчитается.



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да я оговорился. Вводим код товара. Но, повторю еще раз: мне нужно, чтобы стоимоть продажи сразу вносилась в таблицу "Товары" поле "стоимость продажи"

Добавлено через 3 минуты и 2 секунды
user posted image

Добавлено через 3 минуты и 56 секунд
Так приблизительно должна выглядеть таблица "Товары"
PM MAIL ICQ   Вверх
kapbepucm
Дата 3.5.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Treod @  3.5.2008,  18:36 Найти цитируемый пост)
мне нужно, чтобы стоимоть продажи сразу вносилась в таблицу "Товары" поле "стоимость продажи"
Думаю в таблице это сделать практически невозможно (Конечно, возможно, что мне это просто неизвестно). Но это можно сделать в форме прописав AfterUpdate(), например
Код
Private Sub Цена_закупки_AfterUpdate()
  [Цена продажи].Value = Round([Цена закупки].Value * 1.3, 2)
End Sub


И всёже, не понимаю чем вам не нравиться регистрировать новый товар в этом запросе:
Код
SELECT [Товары].[Код], [Товары].[Наименование], [Товары].[Характеристики], [Товары].[Цена закупки], round([Товары].[Цена закупки]*1.3) AS [Цена продажи]
FROM Товары;
для пользователя же выглядит одинаково?

Это сообщение отредактировал(а) kapbepucm - 3.5.2008, 19:11


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
kapbepucm
Дата 3.5.2008, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Остаток товара сделал в 5 этапов (для наглядности):
1)Запрос Ostatok1
Код

SELECT [Строки заказа].[Код товара], Sum([Строки заказа].[Количество]) AS Количество
FROM [Строки заказа]
GROUP BY [Строки заказа].[Код товара];

2)Запрос Ostatok2
Код
SELECT [Строки поставки].[Код товара], Sum([Строки поставки].[Количество]) AS Количество
FROM [Строки поставки]
GROUP BY [Строки поставки].[Код товара];

3)Запрос Ostatok3
Код

SELECT Ostatok1.[Код товара], Ostatok1.Количество
FROM Ostatok1
UNION ALL SELECT Ostatok2.[Код товара], (Ostatok2.Количество*(-1))as [Количество]
FROM Ostatok2;

4)Запрос Ostatok4
Код
SELECT [Ostatok3].[Код товара], Sum([Ostatok3].[Количество]) AS [остаток на складе]
FROM Ostatok3
GROUP BY [Ostatok3].[Код товара];

5)Запрос Ostatok5
Код
SELECT [Товары].[Код], [Товары].[Наименование], [Товары].[Характеристики], [Товары].[Цена закупки], round([Товары].[Цена закупки]*1.3,2) AS [Цена продажи], [Ostatok4].[остаток на складе]
FROM Ostatok4 LEFT JOIN Товары ON [Ostatok4].[Код товара]=[Товары].[Код];


Это сообщение отредактировал(а) kapbepucm - 3.5.2008, 19:29


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Treod
Дата 3.5.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Спасибо большое за помощь. Для цены продыжи оставлю просто запрос. С остатком пока разбираюсь. Еще раз огромное спасибо.
PM MAIL ICQ   Вверх
bopoha
Дата 3.5.2008, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Treod, чем больше цифр будет захарткодано в коде, тем труднее будет сопровождать программу. После разработки попробуй найти разбросанную 1.3 в коде. Надбавка поменяется. Как пить дать. Если не хочется выносить в настройки, то можно сделать фукнцию для вычисления. И использовать ее везде. При измнении понадобится поменять только в одном месте.
PM MAIL WWW ICQ Skype GTalk   Вверх
Treod
Дата 7.5.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Пытаюсь создать запрос, выдает ошибку.
Код

SELECT [Строки заказа].Код, [Строки заказа].[Код заказа], [Строки заказа].[Код товара], [Строки заказа].Количество, ( ([Строки поставки].[Цена закупки])*1,3) AS ([Строки заказа].[Цена продажи])
FROM (Товары INNER JOIN [Строки заказа] ON Товары.Код = [Строки заказа].[Код товара]) INNER JOIN [Строки поставки] ON Товары.Код = [Строки поставки].[Код товара];


Произвел некоторые изменения:
1) "Цену продажи" занес в "Строки заказа"
2)"Цену закупки" в "Строки поставки"

user posted image
PM MAIL ICQ   Вверх
bopoha
Дата 8.5.2008, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Treod @  7.5.2008,  18:30 Найти цитируемый пост)
AS ([Строки заказа].[Цена продажи])


Укажите новое имя без таблицы
PM MAIL WWW ICQ Skype GTalk   Вверх
Akina
Дата 8.5.2008, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Всё, надоело.


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

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


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


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

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



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена!


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

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


Бывалый
*


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

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




Цитата

Укажите новое имя без таблицы


Спасибоsmile
PM MAIL ICQ   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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