A subselect used on the right-hand side of an = must probably return one row (one column, even). A subselect used on the right-hand side of an IN can probably return multiple rows (though presumably ...
* means that more than one payment can exist against the invoice. All the info is in the same table, and the relationship of the invoice to payment is by a transaction_no field. So, is there one table ...