HiA complete shot in the dark as no idea of your tables or what you are trying to achieve, maybe this can point you in the right direction:SELECTTbl_Account.AccNo,SUM(OBAL,Amount) AS OpeningBalanceSUM( CASE WHEN TransType_ID = 0 THEN Amount ELSE 0 END ) AS Total_Adjustment,SUM( CASE WHEN TransType_ID = 1 THEN Amount ELSE 0 END ) AS Total_Topup,SUM( CASE WHEN TransType_ID = 2 THEN Amount ELSE 0 END ) AS Total_Comm,SUM( CASE WHEN TransType_ID = 3 THEN Amount ELSE 0 END ) AS Total_Transfer,SUM( CASE WHEN TransType_ID = 4 THEN Amount ELSE 0 END ) AS Total_RecvTransfer,SUM( CASE WHEN TransType_ID = 2 AND Tbl_Topup.Topup_Company='M' THEN Amount ELSE 0 END ) AS Total_Maxis,SUM( CASE WHEN TransType_ID = 2 AND Tbl_Topup.Topup_Company='D' THEN Amount ELSE 0 END ) AS Total_Digi,SUM( CASE WHEN TransType_ID = 2 AND Tbl_Topup.Topup_Company='C' THEN Amount ELSE 0 END ) AS Total_Celcom,FROM Tbl_AccountLEFT JOIN Tbl_Transaction ON Tbl_Account.AccNo = Tbl_Transaction.Transaction_AccNo AND (SELECT CONVERT(DATE,Tbl_Transaction.Transaction_Date, 105)) BETWEEN (SELECT CONVERT(DATE,'16-9-2012', 105)) AND (SELECT CONVERT(DATE,'30-9-2012', 105))LEFT JOIN Tbl_Topup ON Tbl_Transaction.Topup_ID=Tbl_Topup.Topup_IDLEFT JOIN( SELECT TOP 1 Amount AccNo FROM Tbl_Account ORDER BY <SOMETHING> ) AS OBALON Tbl_Account.AccNo = OBAL.AccNoGROUP BY Tbl_Account.AccNoORDER BY Tbl_Account.AccNo
Andy