• Well without knowing anything about the query, data or even the error message anything you get will be very general.

    You will need to break down the query and understand in detail how it works and what part is failing.

    I would start by identifying what record(s) and fields(s) is(are) causing the error.

    If your query is using subqueries try running those in isolation - this could throw some light on why adding * works - are you trying to use a field hidden within a subquery but not returned from it?

    Same applies for any unions or stored proc calls.

    The TOP XXX would indicate that there is probably a few records causing problems so narrow that down - add additional clauses to help with this. If there is no sorting its probably recent as well.