Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / дайте совет – не могу наладить учет движения товара / 12 сообщений из 12, страница 1 из 1
20.12.2009, 13:33
    #36376259
Макс375
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
У меня учет товара сдаваемого в аренду.
Один и тот же товар периодически приходит и уходит с разных складов, т.е. может быть сдан на одном складе, а возвращен на другой склад.
Сейчас мой учет построен в одной таблице, в которой учитывается приход/уход товара по складам.
Получается, что на один товар – много записей по приходу/уходу на разных складах.
Я совершенно не понимаю, как в запросе или форме отобразить – какой товар, где сейчас находиться.
Может нужно принципиально изменить схему учета?

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
20.12.2009, 18:28
    #36376516
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Макс375 , оставить товар в покое, а по движениям сделать другую табличку...

Определить где товар был в какое-то время довольно просто - нужно найти максимальную дату, но не более нужной.
...
Рейтинг: 0 / 0
21.12.2009, 08:23
    #36376896
Макс375
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
krvsa,

Я это уже пробовал, возможно не тем методом.
Я делаю группировку по максимальному значению даты для группы товара. В таком запросе я могу получить только два столбца - дата и товар, как только я добавляю другое поле (например "склад"), группировка сразу же добавляет записи по этим складам (товар приходил/уходил ранее по разным складам). В результате - в запросе один и тот же товар повторяется.
...
Рейтинг: 0 / 0
21.12.2009, 08:27
    #36376901
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Макс375 , начни с того что отдели товар (одна таблица) от его движения (это вторая таблица) - посе этого обсудим sql-запросы... ;)
...
Рейтинг: 0 / 0
21.12.2009, 09:12
    #36376935
Макс375
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
krvsa,

Оно так уже сделано.
В одной таблице "товар", а в другой таблице "движение", но в одной "Общей" таблице происходит учет движения товара. Таблица эта выглядит так:
дата (самостоятельное поле)
фирма (связана с табл. Поставщики/покупатели)
товар (связана с табл. Товары)
движение (связана с табл. Движение (приход, отгрузка и т.д.))
склад (связана с табл. Склады)

В результате записи в таблице Общая выглядят так:
дата фирма товар движение склад01.05.2009 Гоги Автобус приход Москва10.05.2009 Иванов Автобус отгрузка 05.08.2009 Сидоров Газель приход Москва10.08.2009 Иванов Газель отгрузка20.08.2009 Иванов Газель приход Питер02.03.2009 Гоги Каток приход Питер01.06.2009 Сидоров Мицубис приход Москва01.07.2009 Петров Мицубис отгрузка 01.10.2009 Петров Мицубис приход Питер03.07.2009 Иванов Трактор приход Питер15.08.2009 Петров Трактор отгрузка 20.08.2009 Петров Трактор приход Москва02.09.2009 Гоги Трактор отгрузка
...
Рейтинг: 0 / 0
21.12.2009, 09:38
    #36376950
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Макс375В одной таблице "товар", а в другой таблице "движение", но в одной "Общей" таблице происходит учет движения товара.
Возможно мы с тобой по-разному понимаем формирование таблиц "Товар" и его "Движение"... Ну да ладно...

Макс375Таблица эта выглядит так:
дата (самостоятельное поле)
фирма (связана с табл. Поставщики/покупатели)
товар (связана с табл. Товары)
движение (связана с табл. Движение (приход, отгрузка и т.д.))
склад (связана с табл. Склады)
И какие ты говоришь у тебя проблемы с этой табличкой? Пример запроса покажи...
...
Рейтинг: 0 / 0
21.12.2009, 13:36
    #36377445
Макс375
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
krvsa,

1. Я создаю запрос в конструкторе access стандартными методами.
Запрос в SQL выглядит так:

SELECT Общая.товар, Max(Общая.дата) AS [Max-дата], Общая.движение
FROM Общая
GROUP BY Общая.товар, Общая.движение;

Я сейчас постепенно пытаюсь освоить SQL, но процесс пока идет туго.

2.krvsa мы с тобой по-разному понимаем формирование таблиц
А в чем мои ошибки при формировании таблиц?
...
Рейтинг: 0 / 0
21.12.2009, 13:57
    #36377502
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Макс375Запрос в SQL выглядит так:
Что ты хочешь получить таким запросом?

Макс375А в чем мои ошибки при формировании таблиц?
У меня есть подозрение что под таблицей "Товар" ты подразумеваешь некий "справочник" товара... Т.е. обычных названий товара...

Допустим для примера такую схему

ТоварКодНазваниеДругие его поля
СкладКодНазваниеДругие его поля
ДвижениеКодНазваниеДругие поля
Движение товараКодДатаКод товараКод движенияКод склада
Тогда на твой вопрос "как в запросе или форме отобразить – какой товар, где сейчас находиться" может ответить запрос такого вида

Select A.Название ( Select B.Название From Движение_товара as B Where B.Код_товара=A.Код AND B.Дата=(Select max(C.Дата) From Движение_товара as C Where C.Код_товара=A.Код ) ) as SkladFrom Товар as A

Но в один день товар может быть на нескольких складах сразу. Т.ч. это все очень схематично и в реальности не применимо...

P.S. Для начинающего может взять чего по проще?
...
Рейтинг: 0 / 0
21.12.2009, 14:02
    #36377512
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Запрос не правильно выделил...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Select
   A.Название,
   (
      Select (Select D.Название From Склад as D Where D.Код=B.Код_склада)
      From Движение_товара as B 
      Where 
         B.Код_товара=A.Код 
         AND 
         B.Дата=(Select max(C.Дата) From Движение_товара as C Where C.Код_товара=A.Код )
   ) as Sklad
From
   Товар as A
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
21.12.2009, 14:02
    #36377513
Salimbek
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Макс375,

Может что-то типа такого:

SELECT О1.товар, О1.дата AS [Max-дата], О1.движение, О1.склад FROM Общая О1 LEFT JOIN (SELECT Общая.товар, Max(Общая.дата) AS МаксДата, Общая.движение
FROM Общая
GROUP BY Общая.товар, Общая.движение) О2 ON О1.товар=О2.товар AND О1.дата=О2.МаксДата
...
Рейтинг: 0 / 0
21.12.2009, 16:05
    #36377862
Макс375
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
krvsa,

Пошел думать...
мне это теперь дня на 2-3, а то и белее
Спасибо за подсказку по изменению структуры.
...
Рейтинг: 0 / 0
21.12.2009, 16:11
    #36377882
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дайте совет – не могу наладить учет движения товара
Заходи еще...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / дайте совет – не могу наладить учет движения товара / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]