Показать сообщение отдельно
Старый 11.01.2008, 13:53   #1  
longson is offline
longson
Участник
 
231 / 49 (2) +++
Регистрация: 12.12.2006
Адрес: Москва
Сравнение в разрезе складской аналитики.
Здравствуйте,

Подскажите, пожалуйста, как поступать в этом случае.

Нужно сравнить то, что есть в производственных заказах (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))
 {
   // несколько простых суммирований.
 }
Это очень долго потому что код должен пробегать по всей таблице InventSum по конкретной номенклатуре.

Есть какой-нибудь путь для оптимизации этого кода ?

Спасибо