If you try to reference a value from the outer query within a nested CFLOOP you normally get only the first value from the outer query rather than the value of the current row. In the past a common solution has been to store a temporary value before the nested loop.
#qCities.City#, #tempState#
But this can become cumbersome when dealing with several values and a layer of complexity when reading through the code. A better way to do this is to access the outer query directly using the current row.
#qCities.City#, #qStates["State"][qStates.CurrentRow]#