LW, MTD, STD, YTD Sales... all in line and looking pretty
I think your problem is do with the amount of cartesian products you are forming. I would approach something like this, as I alluded to in chat: 

with salesYTD as (
    SELECT SalesPerson, InvoiceDate, Sum(Amount) As AmountOnDay
    FROM sales 
    WHERE InvoiceDate &gt; DATEADD(year, DATEDIFF(year, 0, GETDATE()), 0)
    GROUP By SalesPerson, InvoiceDate
),
calculatedYTD as (
    SELECT SalesPerson, SUM(AmountOnDay)
    FROM salesYTD
    GROUP BY SalesPerson
),
calculatedMTD as (
    SELECT SalesPerson, SUM(AmountOnDay)
    FROM salesYTD
    WHERE InvoiceDate &gt;= DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)
    GROUP BY SalesPerson
)
-- etc
SELECT *
FROM calculatedYTD ytd
LEFT JOIN calculatedMTD mtd ON ytd.SalesPerson = mtd.SalesPerson


I realise the above is not the same code as you posted, trying to show a basic principal, will expand if you want, just shout in comments

But the basic principle is:


Perform the expensive operation once, specifically the one with the biggest date range (YTD)
Perform the rest of the calculation from the result of the first one (its already filtered)


But there are a few things you can do, to which I have made the assumptions above, assuming:


YTD means the beginning of the year
MTD means the beginning of the month... etc...


you can:


Do away with the calculation functions (they are expensive compared to...)
Calculate your YTD as DATEADD(year, DATEDIFF(year, 0, GETDATE()), 0)
Calculate your MTD as DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)


I haven't run it, but I suspect that it will give you far better IO/performance. Let me know if it helps...