For sales by category and date , you can create a calculated field : sum(Sales,[Category,Date]) . You can then create a new calculated field where you divide it by Sales to get the %.
You can use level aware calculations , the blogs walk through examples which should help you build your set of calculations.
Regards,
Koushik