well pulling the data is pretty straight forward but the rest is going to take some work.
I would pull the data based on the largest possible group (YTD) and then use formulas to be able to identify within these records which of these records fall into the sub categories. Assuming your YTD is Jan1 to present and not a fiscal year:
{table.datefield} in dateadd("d",-(datepart("y",currentdate))+1,currentdate) to currentdate
//this gives you jan1 to present of this year
or
{table.datefield} in dateadd("y",-1,dateadd("d",-(datepart("y",currentdate))+1,currentdate)) to dateadd("y",-1,currentdate)
// this gives you jan1 of last year to one year ago today