Hi Venkat,
I have faced this problem in the past, and I will add to what Amit said - every characteristic that is present in your query should be a key in the target DSO.
By the way, if you are in BW 7.3, you can explore the possibility of avoiding the APD and going by the Query as an InfoProvider concept. That will have a better performance than the APD.
Regards,
Suhas