Hi,
The following query should work for you. If not, please let me know about it.
Query:
SELECT PID,
Quantity
FROM (SELECT p.PID,
( ISNULL(p.Quantity, 0) - SUM(ISNULL(a.Quantity, 0)) ) AS Quantity,
a.PID AS PIDInAllocation
FROM PurchaseTable AS p
LEFT JOIN AllocationTable AS a
ON a.PID = p.PID
GROUP BY p.PID,
p.Quantity,
a.PID) AS s
WHERE ( PIDInAllocation IS NULL )
OR ( Quantity > 0 )