Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.28;
Скачать: CL | DM;

Вниз

Вроде связанный запрос что-ли.. Не могу сообразить   Найти похожие ветки 

 
забылпароль   (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;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.016 c
2-1264669670
Pavel
2010-01-28 12:07
2010.03.28
Пауза между запросами в Indy


2-1264495718
Цукор5
2010-01-26 11:48
2010.03.28
Утечка памяти


1-1246435353
iFynk
2009-07-01 12:02
2010.03.28
DLL и контролы


15-1262890350
AlexDan
2010-01-07 21:52
2010.03.28
подключение через проксисервер..


6-1215346193
Plotnick
2008-07-06 16:09
2010.03.28
Как подключить нескольких клиентов?