I have strange situation for executing query in Firebird 2.5:
select ps.ProductId, p.Id, p.DefPurcUOMNr, p.IsStockFlag
from ProductSupplier ps left join
Product p on p.Id = ps.ProductId
where
(select q.Qty from ProductQtyBMUToUOM$(p.Id, p.DefPurcUOMNr, 1) as q) > 0
Query above is working fine but if add p.IsStockFlag = 1
then p.Id
, p.DefPurcUOMNr
parameters of stored proc ProductQtyBMUToUOM$
will pass equals NULL
for records with p.IsStockFlag = 0
.
select ps.ProductId, p.Id, p.DefPurcUOMNr, p.IsStockFlag
from ProductSupplier ps left join
Product p on p.Id = ps.ProductId
where
p.IsStockFlag=1 and
(select q.Qty from ProductQtyBMUToUOM$(p.Id, p.DefPurcUOMNr, 1) as q) > 0
I guess it is correct behavior but i can't find good description of it. Only my guess which based on this observing.
Thanks all in advance.