11.01.2008, 13:53 | #1 |
Участник
|
Сравнение в разрезе складской аналитики.
Здравствуйте,
Подскажите, пожалуйста, как поступать в этом случае. Нужно сравнить то, что есть в производственных заказах (ProdJournalProd) с тем, что есть в наличии (InventSum). В системе используются несколько складских аналитик - А1, А2, А3. Причем А3 - это детализированные аналитики для А2. Т.е если А2 - номер большого пакета, то А3 - номер более маленького пакета в А2. Сравнение нужно проводить в разрезе аналитики но не в полном объёме. В ProdJournalProd - аналитки есть только А1. В InventSum - аналитики есть А1, А2, А3. Поэтому при сравнении должен написать запрос типа : X++: while select inventSum where inventSum.itemId == prodJournalProd.itemId if(InventDim::find(inventSum.inventDimid).( 1) == InventDim::find(prodJournalProd.inventDimId).( 1)) { // несколько простых суммирований. } Есть какой-нибудь путь для оптимизации этого кода ? Спасибо |
|
11.01.2008, 14:45 | #2 |
Мрачный тип
|
Query по prodJournalProd, на каждой итерации прохода по нему отдельный Query с группировской к InventSum c при-join-енным InventDim, на который наложено условие на А1 и номенклатуры по текущему значению А1 и номенклатуры из prodJournalProd
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
11.01.2008, 15:14 | #3 |
Участник
|
Цитата:
Пример здесь Khue Trinh: How to get Inventory On-hand number |
|
14.01.2008, 13:45 | #4 |
Участник
|
Пробовал, действительно работает в десятки раз быстрее. Спасибо, очень полезный метод.
|
|