I've had a new spanner thrown into the works. I've need to produce a similar report to:
SELECT A.ID
FROM A
LEFT OUTER
JOIN B
ON B.ID = A.ID
LEFT OUTER
JOIN C
ON C.ID = A.ID + B.CSEQS
GROUP
BY A.ID
, A.SubTotal
HAVING A.SubTotal - COALESCE(SUM(C.TranAmount),0)
BETWEEN 100 AND 200
But this time instead of A.SubTotal I need SUM(D.Amount) where D.Amount is a joined table of A.ID = D.ID.
I tried
SELECT A.ID
FROM A
LEFT OUTER
JOIN B
ON B.ID = A.ID
LEFT OUTER
JOIN C
ON C.ID = A.ID + B.CSEQS
LEFT OUTER
JOIN D
ON D.ID = A.ID
GROUP
BY A.ID
HAVING COALESCE(SUM(D.Amount),0) - COALESCE(SUM(C.TranAmount),0)
BETWEEN 100 AND 200
but I'm not getting as many rows as I expect. I think I understand why (intersecting on tables C and D?...which I don't want) but - obviously - don't know the solution.