Возникла необходимость самостоятельно выбрать остатки по складу на некоторую дату
делаю так
1. выбираю InventSum
2. подтягиваю изменения InventTrans за некоторый период
выглядит примерно так
X++:
while select itemid, sum(AvailPhysical) from inventSum
group by itemid
join inventDimSum
group by inventLocationId
where inventDimSum.inventDimId == inventSum.inventDimId
join inventTable
where inventSum.ItemId == inventTable.ItemId &&
inventTable.ItemType == ItemType::BOM &&//остатки тока по спецификациям
inventTable.ItemGroupId like filter
{
select itemId from inventTransPostingPhysical
group by itemId
where inventTransPostingPhysical.inventTransPostingType == InventTransPostingType::Physical &&
inventTransPostingPhysical.transDate >= _date &&
inventTransPostingPhysical.ItemId == inventSum.ItemId
join sum(costAmountPhysical),sum(qty) from inventTrans
where inventTrans.voucherPhysical == inventTransPostingPhysical.voucher &&
inventTrans.datePhysical == inventTransPostingPhysical.transDate &&
inventTrans.inventTransId == inventTransPostingPhysical.inventTransId
join inventDimTrans
where inventDimTrans.inventDimId == inventTrans.inventDimId &&
inventDimSum.InventLocationId == inventDimTrans.InventLocationId;
qty = inventSum.AvailPhysical - inventTrans.Qty;
и так далее
возникает следующий вопрос, если в InventSum нет записи даже с количесвом 0 то плакал весь мой запрос потому как обращение к InventTrans уже не будет и остток я потеряю
если когда то возникало движение по номенклатуре по конкретной InventDim
будет ли эта запись хранится там с нулевыми количествами или она оттуда успешно исчезает?