All suggestions (with a bug-fix or two) gave the same results and ran in acceptable time. Thanks to everyone for their help. I went with the sub-SELECT solution. Not because it gave superior results but because I'm not very familiar with sub-SELECT and it's good to have a working example in my code I can copy when I need it elsewhere.
Once again this list came thing. Thanks. Simon.