This is why I often make an alias to the fact table, and join it to the time dimension using year - 1. To me the SQL comes out legible and usually performs better than the version that comes out using AGO.
1. Create an alias fact table (Year Ago) to pull last year value.
2. Extend your fact table to store another measure (last year sales)
3. Based on volume of granular data and query pattern on year ago measures, you may create aggregate fact tables.