Ok I have an answer to the issue. The following MDX query will return the [Amount] with the Fiscal Years on the Rows and each column will be the Week of Year. The Week of Year will "sorted" by how the weeks occur chronologically. That's really a horrible description better to see it.
WITH SET [Weeks] AS
EXTRACT([Invoice Date].[Dashboard Hierarchy].[Fiscal Week of Year], [Invoice Date].[Dashboard Hierarchy])
SET [Week of Year] AS
INTERSECT(STRTOSET("{" + GENERATE( [Weeks]
,"[Invoice Date].[Fiscal Week Of Year].&[" + [Weeks].CURRENT.NAME + "]"
,",") + "}"), [Invoice Date].[Fiscal Week Of Year].MEMBERS)
SELECT [Week of Year] ON COLUMNS
,{([Invoice Date].[Fiscal Year].[Fiscal Year], [Measures].[Amount])} ON ROWS
FROM [Sales]
When you run the query you will get results like the following
Note that the columns are 51, 52, 53, 1, 2, 3 which is correct for the range of data I've selected (6 months to date). So in my example 6 months ago was the 51st week of that year.
Also notice that there is data that overlaps on week 51 for both 2012 and 2013. This is important if you want the line chart in PerformancePoint content to actually compare these data points. Here's the resulting chart.
Here's what the query is doing
WITH SET [Weeks] AS
EXTRACT([Invoice Date].[Dashboard Hierarchy].[Fiscal Week of Year], [Invoice Date].[Dashboard Hierarchy])
This is using the Extract function to remove all the members from the Fiscal Week of Year level from the Date hierarchy. This returns a set that can be used in the next calculated member.
INTERSECT(STRTOSET("{" + GENERATE( [Weeks]
,"[Invoice Date].[Fiscal Week Of Year].&[" + [Weeks].CURRENT.NAME + "]"
,",") + "}"), [Invoice Date].[Fiscal Week Of Year].MEMBERS)
Here's where most of the work is taking place. So starting from the "inside" and working our way out.
The Generate function is generating a comma-separated string based on the previously created Weeks calculated member. This string is actually being built to look like the [Fiscal Week of Year] member that contains just the weeks and is not part of a date hierarchy. This is important because you cannot return the weeks as part of a hierarchy to the line chart or it won't allow week 51, for example, from 2012 and 2013 to overlap because they are different members.
The new comma-separated string is then converted to a set using the StrToSet function.
Last but not least because there could be multiple week 51's for example, I'm Intersecting the results to return a unique list.
The new calculated member Week of Year is then return ON COLUMNS
I am always open to suggestions on how to accomplish the same thing but simpler because it does seem like I've created a Rube Goldberg MDX query but I just couldn't find any examples on the whole internets on how to accomplish this thing.