Форум: "Базы";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизВроде связанный запрос что-ли.. Не могу сообразить Найти похожие ветки
← →
забылпароль (2009-03-04 17:19) [0]ПРОДУКТы продаются и записи остаются в ЖУРНАЛе
ПРОДУКТ имеет Измерение (шт, кг и т.п.)
-- FK_Journal_Product т.е. один продукт во многих журналах
(Еще есть ДОКУМЕНТы, они тоже входят в ЖУРНАЛ (FK_Journal_Document т.е. один документ во многих журналах), но это не важно)
Зачем-то в ЖУРНАЛе тоже введено поле Измерение
Кривая программа дает туда поставить любому продукту любое измерение. Что операторы и делают.
Надо исправлять..
1.
Запрос на поиск несоответствий
select distinct
P.Article, P.measure, J.measure
from
product as P
join Journal as J on J.Product = P.Product
join document as D on D.Document = J.Document
where
P.measure <> J.Measure
and D.DateTime > "01.01.2009" -- исключительно чтоб недолго ждать. ДОКУМЕНТЫ вообще надо исключить потом
....
2101050003244 1 2
2101050012895 1 2
2101050013939 1 2
.... и т.п.
2.
Исправляю один
update journal
set measure = 1
where
product = (select product from product where article="2101050003244")
and measure = 2
--------------------
Q Помогите, пожалуйста, составить запрос так, чтоб J.measure стал равным P.measure
(могу написать программку (или курсор положить), пробежать по P.Article и каждому сделать >>Исправляю один
только что-то кажется можно одним запросом сделать)
← →
Ega23 © (2009-03-04 17:25) [1]Писал как-то одну системку для дилерской конторы.
продукты в магазин заказывались в "упаковке" - упаковка йогуртов, упаковка молока, и т.п. Для разных продуктов - разное количество штук в упаковке. Но магазин мог вернуть из упаковки в 24 штуки товара 3 штуки товара (побились-помялись при транспортировке, например).
Так что ты зря так сходу кидаешься на этот журнал. Узнай сначала, для чего это нужно и как операторы это используют (если используют).
← →
забылпароль (2009-03-04 17:49) [2]нет. Все правильно,именно так и надо
После заведения в Журнал потом уже измерение поменять в программе у операторов нельзя.
Операторы подходят, просят поменять если заметят
А если нет то может и пшено пойти поштучно или водка килограммами
в идеале хочу сделать job чтоб ежечасно все это дело правил.
← →
Petr V. Abramov © (2009-03-04 22:56) [3]
> то может и пшено пойти поштучно или водка килограммами
для этого вводится понятие "базовая единица" и проверяется, к одной ли базовой относятся единицы в справочнике и в журнале.
А Ega23 © прав.
Вообще с единицамивсе непросто, люди, например, на складе водку любят считать поддонами, а начальство - декалитрами. Вот и переводи, с учетом того, что она бывает 0.5 и 0.7 и на поддоне разное кол-во литров.
← →
ЮЮ © (2009-03-05 06:43) [4]Если есть 3апрос на поиск несоответствий, то он одним движением превращается в запрос на установление соответствия:
UPDATE
j
SET
measure = p.measure
from
product as P
join Journal as J on J.Product = P.Product
join document as D on D.Document = J.Document
where
P.measure <> J.Measure
and D.DateTime > "01.01.2009"
Естественно запрос должен быть без всяких distinct и возвращать все записи из редактируемой таблицы, подлежащие изменению
← →
забыл пароль (2009-03-08 12:49) [5]
> ЮЮ © (05.03.09 06:43) [4]
спасибо!
> Petr V. Abramov © (04.03.09 22:56) [3]
вот именно, завели ТОВАР. Поле ТОВАР.Measure = MEASURE.Measure
1 - шт, 2 - кг и т.п.
Продают этот товар. Зачем же JOURNAL.measure еще вводить когда Journal.Товар уже есть?
← →
Petr V.Abramov (2009-03-08 15:44) [6]
> забыл пароль (08.03.09 12:49) [5]
потому что для пшена ТОВАР.Measure = кг а в журнале могут быть пачки.
например. я ж базы не знаю полностью и приложения тоже. может, на будущее так было предусмотрено, а будущее так не наступило.
← →
Ega23 © (2009-03-11 10:10) [7]
> а в журнале могут быть пачки.
Ага, а пачки могут быть в 0.9 кг, 1 кг, 1.5 кг и мешок в 20 кг.
А мешок этот могут продавать на развес, а остатки потом сдавать. И получится, что заказали у тебя 3 мешка по 20 кг, упаковку в 10 пачек по 1 кг, упаковку в 12 пачек по 0.9 кг, и 2 упаковки по 8 пачек по 1.5 кг. При этом магазин вернул 1 пачку 0.9 (повреждение при транспортировке), 2 пачки по 1.5 кг. И мешок ещё прохудился и его в магазине по весу приняли (18.345 кг).
И все эти упаковки, к примеру, от разных производителей. И, естественно, с разными закупочными ценами.
Так что ты не торопись. :)
← →
Petr V. Abramov © (2009-03-11 11:13) [8]
> Ega23 © (11.03.09 10:10) [7]
да, все именно так и по-хорошему должно быть предусмотрено.
Еще пару пачек может по дороге потерять экспедитор, магазин заплатить не полностью, другой магазин принять не полностью, и экспедитор потерять часть денег и часть непринятого магазином, и все за один рейс.
Плавали :)
← →
Petr V. Abramov © (2009-03-11 11:32) [9]еще возникала задача все эти мешки-пачки перевести все же в килограммы и в товарно-транспортной
вывести min((грузоподъемность_машины - const_для_приличия), масса_брутто_груза)
:)
← →
Ega23 © (2009-03-11 11:36) [10]
> еще возникала задача все эти мешки-пачки перевести все же
> в килограммы и в товарно-транспортной
Во-во. Так что с этими упаковками - всё не так-то просто.
← →
забыл (2009-03-11 12:21) [11]Вы все верно говорите.
Но, в моем случае:
Если завели пшено в кг. То и будет товар "Пшено в кг" и продается оно в кг.
Если пшено завезли в пачках(тоннах и тд), то это будет другой товар ;) и продаваться также в пачках(тоннах и тд),
А если надо тонну распродать по кг, то тонну делаем "возврат поставщику" и доп. "поставку" в 1000 кг. Которую распродаем по кг.
уф..
← →
Ega23 © (2009-03-11 12:31) [12]
> Но, в моем случае:
Ну тебе виднее. Просто я эту всю бодягу к тому начал, что измерение товара - штука довольно хитрая. И товар сам может быть штучный (бутылка пива), а в магазин заказываться именно ящиками (по 20 штук). Т.е. заказ - в ящиках, а вот возврат - уже в штуках. Причём категории возвратов могут быть разные - у трёх бутылок тупо повреждение при транспортировке, а у 15 - срок годности истёк. Например.
Опять же общий вес заказа для транспорта - брутто-вес 20 бутылок <> брутто-весу одного ящика бутылок. Ну и т.п.
Так что подходи к этому вопросу крайне осторожно. Тем более, если (насколько я понял) ты систему дорабатываешь и хрен его знает, что разработчик имел ввиду.
← →
Petr V. Abramov © (2009-03-11 17:25) [13]
> забыл (11.03.09 12:21) [11]
> Если пшено завезли в пачках(тоннах и тд), то это будет другой
> товар ;)
застрелиццо
← →
Petr V. Abramov © (2009-03-11 20:20) [14]а вообще-то вопрос хороший и надо ехать в "потрепаться"
:)
← →
Anatoly Podgoretsky © (2009-03-12 09:04) [15]> Ega23 (11.03.2009 10:10:07) [7]
> Так что ты не торопись. :)
Мы еще придумаем.
← →
Anatoly Podgoretsky © (2009-03-12 09:07) [16]> забыл (11.03.2009 12:21:11) [11]
Пшено завезли в килограммах, а продаваться будет в литрах, потому что из него выгнали самогон.
← →
Немо © (2009-03-12 11:07) [17]И опять вы правы
, но:
Операторы колотят товары конвейером с 8 до 22, им некогда разбираться. И раки в порциях по 3 и по 5 - было решено делать, что это разные товары. Так проще и быстрее. Людям банально некогда, нет времени.
PS
Почитал тут старые старые темы, у вас тут стиль чтоль такой разговаривать..
Да вообщем, все равно. Хоть в Потрепаться сошлите, хоть еще куда.
Вопрос решен, всем еще раз спасибо.
← →
Ega23 © (2009-03-12 11:15) [18]
> Операторы колотят товары конвейером с 8 до 22, им некогда
> разбираться. И раки в порциях по 3 и по 5 - было решено
> делать, что это разные товары. Так проще и быстрее. Людям
> банально некогда, нет времени.
Всё возможно. И порой действительно следует идти на разумную денормализацию базы, если она существенно ускоряет работу.
Лично я пытаюсь донести, что такая структура была выбрана неспроста. Возможно это действительно лишняя "фича" для данной системы. вполне возможно. Но к пересмотру структуры БД нужно подходить крайне аккуратно, тем более когда ты сидишь на сопровождении готовой системы, а не являешься её разработчиком "с нуля".
вот и всё.
← →
Petr V. Abramov © (2009-03-12 11:29) [19]если есть возможность, на форме ввода просто убери поле ввода единицы измерения и подставляй его из product. А еще лучше, пусть оно на форме по умолчанию стоИт "правильным", соответсвующим ТОВАР.Measure
← →
имя (2009-03-20 01:14) [20]Удалено модератором
Примечание: спам
← →
MsGuns © (2009-03-20 12:46) [21]Товар на складе должен вестись в УЧЕТНЫХ ЕИ, а вот в приходно-расходных документах могут указываться УКРУПНЕННЫЕ ЕИ. Соответсвенно и должен быть справочник перевода.
Пример: мука, УЕИ=кг.
Имеется справочник:
"пачка 1.5" = 1.5 кг
"пачка 1" = 1 кг
"мешок ткань" = 50 кг
"мешок п/э" = 8 кг
"пакет бум.бол" = 25 кг
"пакет бум.мал" = 10 кг
и т.д.
Приход если в ЕИ, то автоматом по строке фактуры переводится в УЕИ, т.е. мешки, пачки, пакеты - все в кг
Аналогично - расход
В результате все движение по товарной карточке исключительно в УЕИ, а вот в документах для покупателей, грузчиков, кладовщиков и т.д. - в ЕИ, проставленных, если нужно, на бумаге
Все остальное - бардак и неразбериха
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.005 c