Didn't you try by simply mapping Project Id and Company from Datasource to DSO?
Keep Project Id and company as Key fields in DSO.
But actually DSo should be detailed like Datasource. You are trying to aggregate data like in Cube. You can map all the fields from DS to DSO. Keep all other fields as Data fields in DSO.