>I am quite certain that this will NOT work, because the query engine will do the equivalent of USE (TABLE) AGAIN.
Doh! Of course your right. You'd need to leave off the alias in the DELETED(). And I'm still not sure what would happen in the JOIN or HAVING, but I don't think I'd count on predictable results. The correct answer is, as you said, to first pull the deleted records into a cursor with a single-table select and then JOIN that.
BTW, the other reason this solution is a good idea is that -- assuming the deleted records are a small subset of the total -- it'll usually be faster.