Добрый день.
Необходимо чтобы проверялось, есть ли позиции запасов по складам, для которых остаток по складу меньше чем число, проставленное в поле "минимум" (Номенклатурные единицы -> Покрытие).
На SQL Server данный запрос выглядит следующим образом:
PHP код:
select count(* )
from InventSum, InventItemLocation
where InventSum.ItemId = InventItemLocation.ItemId
and
InventItemLocation.MinInventOnHand >= InventSum.availPhysical
and
InventItemLocation.MinInventOnHand<>0
Пробую повторить то же в Аксапте. Например так:
PHP код:
InventItemLocation inventitemlocation;
int cnt;
;
super();
cnt = str2int(
(select count(ItemId) from InventSum where
( (InventSum.ItemId == InventItemLocation.ItemId) &&
(InventItemLocation.MinInventOnHand >= InventSum.availPhysical) &&
(InventItemlocation.MinInventOnHand != 0)
)
).ItemId);
print int2str(cnt);
Или так:
PHP код:
InventSum InventSum;
int cnt;
;
super();
cnt = str2int(
(select count(ItemId) from InventItemLocation where
( (InventSum.ItemId == InventItemLocation.ItemId) &&
(InventItemLocation.MinInventOnHand >= InventSum.availPhysical) &&
(InventItemlocation.MinInventOnHand != 0)
)
).ItemId);
print int2str(cnt);
И в первом и во втором случае Аксапта возвращает ноль, хотя записи, удовлетворяющие данным условиям точно есть.
Следующий код вообще не компилируется:
PHP код:
InventSum InventSum;
int cnt;
;
super();
cnt = str2int(
(select count(ItemId) from InventItemLocation join InventSum where
( (InventSum.ItemId == InventItemLocation.ItemId) &&
(InventItemLocation.MinInventOnHand >= InventSum.availPhysical) &&
(InventItemlocation.MinInventOnHand != 0)
)
).ItemId);
print int2str(cnt);
Как реализовать этот запрос в Аксапте ?