Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Страницы:   1 2

забылпароль ©   (2009-03-04 17:19:00) 

ПРОДУКТы продаются и записи остаются в ЖУРНАЛе
ПРОДУКТ имеет Измерение (шт, кг и т.п.)
-- 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 и каждому сделать >>Исправляю один
только что-то кажется можно одним запросом сделать)


MsGuns   (2009-03-20 12:46:00) [1]

Товар на складе должен вестись в УЧЕТНЫХ ЕИ, а вот в приходно-расходных документах могут указываться УКРУПНЕННЫЕ ЕИ. Соответсвенно и должен быть справочник перевода.

Пример: мука, УЕИ=кг.
Имеется справочник:
 "пачка 1.5" = 1.5 кг
 "пачка 1" = 1 кг
 "мешок ткань" = 50 кг
 "мешок п/э" = 8 кг
 "пакет бум.бол" = 25 кг
 "пакет бум.мал" = 10 кг
 и т.д.

Приход если в ЕИ, то автоматом по строке фактуры переводится в УЕИ, т.е. мешки, пачки, пакеты - все в кг
Аналогично - расход

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

Все остальное - бардак и неразбериха


  (2009-03-20 01:14:00) [2]

Удалено модератором
Примечание: спам


Petr V. Abramov   (2009-03-12 11:29:00) [3]

если есть возможность, на форме ввода просто убери поле ввода единицы измерения и подставляй его из product. А еще лучше, пусть оно на форме по умолчанию стоИт "правильным", соответсвующим ТОВАР.Measure


Ega23   (2009-03-12 11:15:00) [4]


> Операторы колотят товары конвейером с 8 до 22, им некогда
> разбираться. И раки в порциях по 3 и по 5 - было решено
> делать, что это разные товары. Так проще и быстрее. Людям
> банально некогда, нет времени.


Всё возможно. И порой действительно следует идти на разумную денормализацию базы, если она существенно ускоряет работу.
Лично я пытаюсь донести, что такая структура была выбрана неспроста. Возможно это действительно лишняя "фича" для данной системы. вполне возможно. Но к пересмотру структуры БД нужно подходить крайне аккуратно, тем более когда ты сидишь на сопровождении готовой системы, а не являешься её разработчиком "с нуля".
вот и всё.


Немо   (2009-03-12 11:07:00) [5]

И опять вы правы
, но:
Операторы колотят товары конвейером с 8 до 22, им некогда разбираться. И раки в порциях по 3 и по 5 - было решено делать, что это разные товары. Так проще и быстрее. Людям банально некогда, нет времени.

PS
Почитал тут старые старые темы, у вас тут стиль чтоль такой разговаривать..
Да вообщем, все равно. Хоть в Потрепаться сошлите, хоть еще куда.
Вопрос решен, всем еще раз спасибо.


Anatoly Podgoretsky   (2009-03-12 09:07:00) [6]

> забыл  (11.03.2009 12:21:11)  [11]

Пшено завезли в килограммах, а продаваться будет в литрах, потому что из него выгнали самогон.


Anatoly Podgoretsky   (2009-03-12 09:04:00) [7]

> Ega23  (11.03.2009 10:10:07)  [7]

> Так что ты не торопись.  :)

Мы еще придумаем.


Petr V. Abramov   (2009-03-11 20:20:00) [8]

а вообще-то вопрос хороший и надо ехать в "потрепаться"
:)


Petr V. Abramov   (2009-03-11 17:25:00) [9]


> забыл   (11.03.09 12:21) [11]
> Если пшено завезли в пачках(тоннах и тд), то это будет другой
> товар ;)

застрелиццо


Ega23   (2009-03-11 12:31:00) [10]


> Но, в моем случае:


Ну тебе виднее. Просто я эту всю бодягу к тому начал, что измерение товара - штука довольно хитрая. И товар сам может быть штучный (бутылка пива), а в магазин заказываться именно ящиками (по 20 штук). Т.е. заказ - в ящиках, а вот возврат - уже в штуках. Причём категории возвратов могут быть разные - у трёх бутылок тупо повреждение при транспортировке, а у 15 - срок годности истёк. Например.

Опять же общий вес заказа для транспорта - брутто-вес 20 бутылок <> брутто-весу одного ящика бутылок. Ну и т.п.
Так что подходи к этому вопросу крайне осторожно. Тем более, если (насколько я понял) ты систему дорабатываешь и хрен его знает, что разработчик имел ввиду.


забыл   (2009-03-11 12:21:00) [11]

Вы все верно говорите.

Но, в моем случае:
Если завели пшено в кг. То и будет товар "Пшено в кг" и продается оно в кг.
Если пшено завезли в пачках(тоннах и тд), то это будет другой товар ;) и продаваться также в пачках(тоннах и тд),
А если надо тонну распродать по кг, то тонну делаем "возврат поставщику" и доп. "поставку" в 1000 кг. Которую распродаем по кг.
уф..


Ega23   (2009-03-11 11:36:00) [12]


> еще возникала задача все эти мешки-пачки перевести все же
> в килограммы и в товарно-транспортной


Во-во. Так что с этими упаковками - всё не так-то просто.


Petr V. Abramov   (2009-03-11 11:32:00) [13]

еще возникала задача все эти мешки-пачки перевести все же в килограммы и в товарно-транспортной
вывести min((грузоподъемность_машины - const_для_приличия), масса_ брутто_груза)
:)


Petr V. Abramov   (2009-03-11 11:13:00) [14]


> Ega23 ©   (11.03.09 10:10) [7]

да, все именно так и по-хорошему должно быть предусмотрено.
Еще пару пачек может по дороге потерять экспедитор, магазин заплатить не полностью, другой магазин принять не полностью, и экспедитор потерять часть денег и часть непринятого магазином, и все за один рейс.
Плавали :)


Ega23   (2009-03-11 10:10:00) [15]


> а в журнале могут быть пачки.


Ага, а пачки могут быть в 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-08 15:44:00) [16]


> забыл пароль   (08.03.09 12:49) [5]

потому что для пшена ТОВАР.Measure = кг а в журнале могут быть пачки.
например. я ж базы не знаю полностью и приложения тоже. может, на будущее так было предусмотрено, а будущее так не наступило.


забыл пароль   (2009-03-08 12:49:00) [17]


> ЮЮ ©   (05.03.09 06:43) [4]

спасибо!


> Petr V. Abramov ©   (04.03.09 22:56) [3]

вот именно,  завели ТОВАР. Поле ТОВАР.Measure = MEASURE.Measure
1 - шт, 2 - кг и т.п.
Продают этот товар. Зачем же JOURNAL.measure еще вводить когда Journal.Товар уже есть?


ЮЮ   (2009-03-05 06:43:00) [18]

Если есть 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 и возвращать все записи из редактируемой таблицы, подлежащие изменению


Petr V. Abramov   (2009-03-04 22:56:00) [19]


> то может и пшено пойти поштучно или водка килограммами

для этого вводится понятие "базовая единица" и проверяется, к одной ли базовой относятся единицы в справочнике и в журнале.
А Ega23 ©  прав.
Вообще с единицамивсе непросто, люди, например, на складе водку любят считать поддонами, а начальство - декалитрами. Вот и переводи, с учетом того, что она бывает 0.5 и 0.7 и на поддоне разное кол-во литров.


забылпароль   (2009-03-04 17:49:00) [20]

нет. Все правильно,именно так и надо
После заведения в Журнал потом уже измерение поменять в программе у операторов нельзя.
Операторы подходят, просят поменять если заметят
А если нет то может и пшено пойти поштучно или водка килограммами

в идеале хочу сделать job чтоб ежечасно все это дело правил.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо