Geçen gün bir rapor için yazdığım metodu paylaşıyorum. Daha hızlı bir çözümü olabilir belki ama ben en son bu şekilde çözdüm.
public Amount sumBBQty(ItemId _itemId,TransDate _startDate, TransDate _endDate ,InventDimId _inventDimId = “”)
{
InventTrans tmpInevnttrans,inventTrans;
Amount sumTotal;
;
if(_inventDimId)
{
select sum(Qty) from tmpInevnttrans
group by tmpInevnttrans.inventDimId
where tmpInevnttrans.ItemId == _itemId && tmpInevnttrans.inventDimId == _inventDimId
&& (tmpInevnttrans.DateFinancial < _startDate && tmpInevnttrans.DateFinancial );
sumTotal = tmpInevnttrans.Qty;
}
else
{
while select inventTrans
group by inventTrans.inventDimId
where inventTrans.ItemId == _itemId
&& (inventTrans.DateFinancial >= _startDate && inventTrans.DateFinancial <= _endDate)
{
select sum(qty) from tmpInevnttrans
where tmpInevnttrans.ItemId == _itemId && tmpInevnttrans.inventDimId == inventTrans.InventDimId
&& (tmpInevnttrans.DateFinancial < _startDate && tmpInevnttrans.DateFinancial );
sumTotal +=tmpInevnttrans.Qty;
}
}
return sumTotal;
}