Hi Martyn,
I am pretty sure LDAP querying is not that flexible, if you want to be selective with the data you pull from the LDAP structure you probably only have two options.
1. Multiple LDAP queries, each one targeting the data you want, as many queries as you have data sets.
2. Global query where you do a topdown search that will include everything you want and then in your processing (i.e. the code processing the query) you filter the result set down to what you need.
For ultimate control over this, I would personally opt for option 1 for maintainability, but if you have special processing depending on the data I would go with the second option so I had more control over the data I am processing. In practice you may well need to use a combination of both approaches.
Hope that helps.
Gerry