Query: Compare initial balance and Y/E Closing

Select [GLAccountCur].[DBId], [GLAccount].[Number], [GLAccountCur].[GLAccountId], [GLAccountCur].[CurrencyId], [GLAccountCur].[Amount], [ResGLYEBalance].[StartBalance]
from ([GLAccountCur]
LEFT JOIN (Select [GLYEBalance].[DBId], [GLYEBalance].[GLAccountId], [GLYEBalance].[CurrencyId], [GLYEBalance][StartBalance]from [GLYEBalance]
INNER JOIN(Select [GLPeriod].[DBId], [Id] from [GLPeriod]
INNER JOIN(Select [DBId], Min([StartDate]) as [ResStartDate] from [GLPeriod] Group by [DBId]) as [MinGLPeriod]
ON ([GLPeriod].[DBId] = [MinGLPeriod].[DBId] and [GLPeriod].[StartDate] = [MinGLPeriod].[ResStartDate])) as [FirstGLPeriod]
ON ([GLYEBalance].[GLPeriodId] = [FirstGLPeriod].[Id] and [GLYEBalance].[DBId] = [FirstGLPeriod].[DBId])) as [ResGLYEBalance]
ON [GLAccountCur].[GLAccountId] = [ResGLYEBalance].[GLAccountId]
AND [GLAccountCur].[CurrencyId] = [ResGLYEBalance].[CurrencyId]
AND [GLAccountCur].[DBId] = [ResGLYEBalance].[DBId])
INNER JOIN [GLAccount]
ON ([GLAccountCur].[GLAccountId] = [GLAccount].[Id] and [GLAccountCur].[DBId] = [GLAccount].[DBId])
where Not [GLAccountCur].[Amount] = [ResGLYEBalance].[StartBalance]
order by [GLAccountCur].[DBId], [GLAccount].[Number]