Before I get to the original question just a bit of advice...
The cleaner your code the easier it is going to be to troubleshoot... Also, make sure not to use spaces in column names as it complicates things in the long run and is bad programming etiquette. I have rewritten the bit of code in an easier way and I personally recommend something in this format for all your future scripts.
/*For this example I assumed that you would fix the column names and remove spaces. If not then make sure to make it aSum.[Period ID] etc etc */
-- Here is where you need to add the joined table's data.
FROM [DatabaseName].[dbo].[AccountSummary] aSum
LEFT JOIN [DatabaseName].[dbo].GL00201 gl ON aSum.AccountIndex = gl.AccountIndex
where aSum.Year = '2013'
With that being said you are getting a Cartesian product... my first guess would be that the account index is not unique. Can you post the design of the tables and some sample data?