|
|
#1 |
|
Участник
|
Помощь с запросом суммарное колличество по блокированным паллетам
Добрый день!
Подскажите пожалуйста как правильно составить запрос - в итоге мне надо получить суммарно заблокированное количество по артикулу в разрезе аналитик - склад, сайт. Такой вариант вот плохо работает: X++: static void Job56(Args _args) { InventSum inventSum; WmsPallet wmsPallet; InventDim inventDim; ; while select inventSum where inventSum.ItemId == "a25009" && inventSum.Closed == NoYes::No && inventSum.ClosedQty == NoYes::No join inventDim where inventDim.inventDimId == inventSum.InventDimId { If(wmsPallet::find(inventDim.wMSPalletId).IsPalletBlocked == NoYes::Yes) { inventSum.PhysicalInvent += inventSum.PhysicalInvent; } } info(strfmt("%1", inventSum.PhysicalInvent)); |
|
|
|
|
#2 |
|
Участник
|
X++: InventSum inventSum;
WmsPallet wmsPallet;
InventDim inventDim;
;
while select inventSum
where inventSum.ItemId == "a25009"
&& inventSum.Closed == NoYes::No
&& inventSum.ClosedQty == NoYes::No
join inventDim
where inventDim.inventDimId == inventSum.InventDimId
exist join wmsPallet
where wmsPallet.wMSPalletId == inventDim.wMSPalletId
&& wmsPallet.IsPalletBlocked == NoYes::Yes
{
inventSum.PhysicalInvent += inventSum.PhysicalInvent;
}
info(strfmt("%1", inventSum.PhysicalInvent));Последний раз редактировалось Kiot; 08.04.2015 в 17:40. |
|
|
|
|
#3 |
|
Гость
|
select sum(..) from inventSum
group by ItemId, where ... exists join inventDim where inventDim.inventDimId == inventSum.InventDimId exists join wmsPallet where... ? |
|
|
|
| За это сообщение автора поблагодарили: Art_Tanis (1). | |
|
|
#4 |
|
Участник
|
Вот почему то возвращает ноль. Щас буду деббажить. А паллета заблокированная есть.
|
|
|
|
|
#5 |
|
Участник
|
Работает вот это:
select sum(PhysicalInvent) from inventSum group by ItemId where inventSum.ItemId == "a25009" && inventSum.Closed == NoYes::No && inventSum.ClosedQty == NoYes::No exists join inventDim where inventDim.inventDimId == inventSum.InventDimId exists join wmsPallet where wmsPallet.wMSPalletId == inventDim.wMSPalletId && wmsPallet.IsPalletBlocked == NoYes::Yes; info(strfmt("%1", inventSum.PhysicalInvent)); |
|
|
|
|
#6 |
|
Участник
|
Еще один вопрос. В зависимости от флага в таблице InventDimParm необходимо добавлять параметр аргумента InventDim к поиску:
X++: protected qty calcInventSummBlockedFromDim(ItemId _itemId, InventDim _inventDim, inventDimParm _inventDimParm) { InventSum inventSum; WmsPallet wmsPallet; InventDim inventDim; ; if (_inventDimParm.IvnentSiteId == NoYes::Yes) { select sum(PhysicalInvent) from inventSum group by ItemId where inventSum.ItemId == _itemId && inventSum.Closed == NoYes::No && inventSum.ClosedQty == NoYes::No exists join inventDim where inventDim.inventDimId == inventSum.InventDimId && inventDim.InventSiteId == _inventDim.InventSiteId exists join wmsPallet where wmsPallet.wMSPalletId == inventDim.wMSPalletId && wmsPallet.IsPalletBlocked == NoYes::Yes; } return inventSum.PhysicalInvent; } |
|
|
|
|
#7 |
|
Участник
|
Посмотрите перекресные ссылки по макросу #InventDimExistsJoin (он в АОТ). Этот макрос используется для фильтра выборки по аналитикам выбраным в парм таблице. Найдется 1000 и 1 пример.
|
|
|
|
|
#8 |
|
Участник
|
Спасибо. Сделал. Должен сказать комьюнити очень активное. Всем большое спасибо.
|
|
|
|
|
#9 |
|
Сенбернар
|
Иногда лучше жевать, чем говорить (с) реклама
|
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Помощь с запросом | 7 | |||
| Выборка произвольных записей одним запросом | 1 | |||
| Помогите с SQL запросом | 8 | |||
| расчеты с персоналом. мат. помощь | 1 | |||
| Очень нужна Ваша помощь!!! | 2 | |||
|