Если вы хотите извлечь данные из обеих таблиц, используйте FULL OUTER JOIN вместо LEFT JOIN в вашем запросе, как показано ниже,
Также объедините таблицу OpeningBalance для o.AccountId с GL.AccountId в таблице GeneralLedgerLine
SELECT GL.AccountId,Ca.Code as Code,CA.AccountName as AccountName,
SUM(CASE GL.DrCr WHEN 2 THEN ISNULL(Amount,0) END) AS Debit,
SUM(CASE GL.DrCr WHEN 1 THEN ISNULL(Amount,0) END) AS Credit,
SUM(CASE o.DrOrCr WHEN 2 THEN ISNULL(o.Balance,0) END) AS OpeningDebit,
SUM(CASE o.DrOrCr WHEN 1 THEN ISNULL(o.Balance,0) END) AS OpeningCredit
FROM GeneralLedgerLine GL
Join ClientAccount CA On GL.AccountId = CA.Id
FULL OUTER Join OpeningBalance o on o.AccountId=GL.AccountId
Where CA.ClientId = 1
GROUP BY GL.AccountId,CA.Code,CA.AccountName
Если вы хотите выбрать все строки из таблицы OpeningBalance, но не все строки из таблицы GeneralLedgerLine, тогда используйте RIGHT OUTER JOIN вместо LEFT JOIN в вашем запросе,
Также присоединяйтесьТаблица OpeningBalance для o.AccountId с GL.AccountId в таблице GeneralLedgerLine
SELECT GL.AccountId,Ca.Code as Code,CA.AccountName as AccountName,
SUM(CASE GL.DrCr WHEN 2 THEN ISNULL(Amount,0) END) AS Debit,
SUM(CASE GL.DrCr WHEN 1 THEN ISNULL(Amount,0) END) AS Credit,
SUM(CASE o.DrOrCr WHEN 2 THEN ISNULL(o.Balance,0) END) AS OpeningDebit,
SUM(CASE o.DrOrCr WHEN 1 THEN ISNULL(o.Balance,0) END) AS OpeningCredit
FROM GeneralLedgerLine GL
Join ClientAccount CA On GL.AccountId = CA.Id
RIGHT OUTER Join OpeningBalance o on o.AccountId=GL.AccountId
Where CA.ClientId = 1
GROUP BY GL.AccountId,CA.Code,CA.AccountName