Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1264136473
Дмитрий С
2010-01-22 08:01
2010.03.28
Регистр букв в AutoComplete в TComboBox


2-1264603718
d.l.
2010-01-27 17:48
2010.03.28
try..finally


2-1264770248
Scot Storch
2010-01-29 16:04
2010.03.28
Compare Files


15-1262813434
Юрий
2010-01-07 00:30
2010.03.28
С днем рождения ! 7 января 2010 четверг


3-1237158348
istok
2009-03-16 02:05
2010.03.28
TdxMemData...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский