Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Учет товара по нескольким складам ???

2.1K
20 января 2004 года
geo
22 / / 26.03.2003
Не знаю как лучше поступить?
Была база (мс_аццесс) в которой велся учет товара по одному складу. И тут вдруг понадобилось переделать на 3 (или 4) склада. Было все просто - Таблица "товары" где есть уникальный номер (код) товара, количество и т.д.
вот и кидай его куда хочешь. А теперь - ??? Как учесть движение товара со склада_1 на склад_2 (к примеру). Т.е. как правильно фиксировать принадлежность товара к складу_Х, при этом не меня его (товара) уникальный номер (код).
Я вот думаю может в таблице "товары" создать поля склад_1 .. склада_х и в них учитывать количество товара на данном складе. Дайте советы или поругайте меня в пух и прах.
348
21 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by geo
Не знаю как лучше поступить?
Была база (мс_аццесс) в которой велся учет товара по одному складу. И тут вдруг понадобилось переделать на 3 (или 4) склада. Было все просто - Таблица "товары" где есть уникальный номер (код) товара, количество и т.д.
вот и кидай его куда хочешь. А теперь - ??? Как учесть движение товара со склада_1 на склад_2 (к примеру). Т.е. как правильно фиксировать принадлежность товара к складу_Х, при этом не меня его (товара) уникальный номер (код).
Я вот думаю может в таблице "товары" создать поля склад_1 .. склада_х и в них учитывать количество товара на данном складе. Дайте советы или поругайте меня в пух и прах.



Если у тебя № товара уникален на всех складах вместе и количество складов у тебя заранее известно, то сделай новую таблицу типа:
№Товара |кол-во на Склад1 | к-л на Склад2...
--------------------------------------------
001 | 5 | 2
002 | 10 | 0
............................

Соответственно ключ это номер товара, и свяжи её с таблицей "Товар" в которой так и будет содержаться вся инфа на товар.

2.1K
21 января 2004 года
geo
22 / / 26.03.2003
хорошо, предположим я создам таблицу "Расположение_товара" с полями tovar_id, sklad_id, amout и таким образом получу (к примеру) -
tovar_id | sklad_id | amout
-----------------------------------
1 | 1 | 16
1 | 2 | 8
2 | 1 | 20
2 | 2 | 17
-----------------------------------

ВОПРОС? как мне потом с помощью SELECT запроса можно получить такую таблицу

tovar_id | kol-vo_na_sklad_1 | kol-vo_na_sklad_2 ...
--------------------------------------------------------------
1 | 16 | 8
2 | 20 | 17
--------------------------------------------------------------
348
24 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by geo
хорошо, предположим я создам таблицу "Расположение_товара" с полями tovar_id, sklad_id, amout и таким образом получу (к примеру) -
tovar_id | sklad_id | amout
-----------------------------------
1 | 1 | 16
1 | 2 | 8
2 | 1 | 20
2 | 2 | 17
-----------------------------------

ВОПРОС? как мне потом с помощью SELECT запроса можно получить такую таблицу

tovar_id | kol-vo_na_sklad_1 | kol-vo_na_sklad_2 ...
--------------------------------------------------------------
1 | 16 | 8
2 | 20 | 17
--------------------------------------------------------------



Я предлогал несколько другой вид таблицы. А именно, такой в каком виде ты хочешь иметь выходные данные.

2.1K
24 января 2004 года
geo
22 / / 26.03.2003
Мне нравиться эта идея. Дело в том что если будет таблица
tovar_id | kol-vo_na_sklad_1 | kol-vo_na_sklad_2 ...
--------------------------------------------------------------
1 | 16 | 8
2 | 20 | 17
--------------------------------------------------------------
то с помощью SELECT ... UNION ... SELECT можно получить
tovar_id | sklad_id | amout
-----------------------------------
1 | 1 | 16
1 | 2 | 8
2 | 1 | 20
2 | 2 | 17
-----------------------------------
а вот как если бы обратно - я не знаю, поэтому и спрашивал.
348
26 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by geo
Мне нравиться эта идея. Дело в том что если будет таблица
tovar_id | kol-vo_na_sklad_1 | kol-vo_na_sklad_2 ...
--------------------------------------------------------------
1 | 16 | 8
2 | 20 | 17
--------------------------------------------------------------
то с помощью SELECT ... UNION ... SELECT можно получить
tovar_id | sklad_id | amout
-----------------------------------
1 | 1 | 16
1 | 2 | 8
2 | 1 | 20
2 | 2 | 17
-----------------------------------
а вот как если бы обратно - я не знаю, поэтому и спрашивал.


Мне тоже что-то ничего в голову не приходит. Была бы СУБД по серьёзней, тогда это было бы просто, а здесь видимо придётся делать это в перемешку с VBA в несколько запросов, а потом уже выводить.

2.1K
26 января 2004 года
geo
22 / / 26.03.2003
Мне тут добрые люди, на других форумах, подсказали пару способов ->
Цитата:
TRANSFORM Sum(Table1.amout) AS [Value]
SELECT Table1.tovar_id, Sum(Table1.amout) AS [Total Value]
FROM Table1
GROUP BY Table1.tovar_id
PIVOT "kol-vo_na_sklad_sklad_" & [sklad_id];

or

Цитата:
Select tovar_id,
(select amount from tovary t2 where t1.tovar_id = t2.tovar_id AND sklad_id = 1) as kol-vo_na_sklad_1,
(select amount from tovary t2 where t1.tovar_id = t2.tovar_id AND sklad_id = 2) as kol-vo_na_sklad_2,
...
FROM tovary t1


ВОТ. .но я пока это не тестил.

348
26 января 2004 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by geo
Мне тут добрые люди, на других форумах, .но я пока это не тестил.


Если количество складов статично, то да.

6.1K
28 января 2004 года
PeterV
13 / / 28.01.2004
Цитата:
Originally posted by geo
Не знаю как лучше поступить?
Была база (мс_аццесс) в которой велся учет товара по одному складу. И тут вдруг понадобилось переделать на 3 (или 4) склада. Было все просто - Таблица "товары" где есть уникальный номер (код) товара, количество и т.д.
вот и кидай его куда хочешь. А теперь - ??? Как учесть движение товара со склада_1 на склад_2 (к примеру). Т.е. как правильно фиксировать принадлежность товара к складу_Х, при этом не меня его (товара) уникальный номер (код).
Я вот думаю может в таблице "товары" создать поля склад_1 .. склада_х и в них учитывать количество товара на данном складе. Дайте советы или поругайте меня в пух и прах.



Допустим имееш 3 склада.
Нужно создать временную таблицу tbTotal с 4-мя столбцами.(TovarId, Sklad1Kol, Sklad2Kol, Sklad3Kol)

INSERT INTO tbTotal
SELECT TOVAR, AMOUNT, 0,0 FROM Table1 WHERE sklad_id=1

INSERT INTO tbTotal
SELECT TOVAR, 0, AMOUNT, 0 FROM Table1 WHERE sklad_id=2

INSERT INTO tbTotal
SELECT TOVAR, 0, 0, AMOUNT FROM Table1 WHERE sklad_id=3

и наконец

SELECT TovarId, SUM(Sklad1Kol), SUM(Sklad2Kol), SUM(Sklad3Kol)
FROM tbTotal Group By TovarId

Но об эффективности лучше не вспоминать.

Если имеешь больше 3 склада, то SQL выражения лучше бы
построить программно в цикле.

437
11 февраля 2004 года
Lsd[52r]
106 / / 20.12.1999
Цитата:
Originally posted by Saris

Если количество складов статично, то да.



ИМХО даж если ко-ло не статично, то можно запрос в цикле построить.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог