I have two tables. led and Tbl_LoanMst 
CREATE TABLE [dbo].[led](
    [GLCode] [varchar](10) NOT NULL,
    [AccountID] [varchar](15) NULL,
    [Dr_Cr] [char](1) NOT NULL,
    [amount] [money] NULL,
    [LoanRefNo] [varchar](20) NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[Tbl_LoanMst](
    [SrNo] [int] IDENTITY(1,1) NOT NULL,
    [Acctno] [varchar](15) NULL,
    [LoanTranchNo] [varchar](20) NULL,
    [DisbursalDate] [varchar](8) NULL,
    [LoanStartDate] [varchar](8) NULL,
    [Tenure] [money] NULL,
    [LoanExpiryDate] [varchar](8) NULL,
    [InterestRate] [money] NULL,
    [PenalInterestRate] [money] NULL,
    [IntrFrequency] [char](11) NULL,
    [LoanAmount] [money] NULL,
    [ApplicableDP] [money] NULL,
    [ProcessingFees] [money] NULL,
    [OtherCharges] [money] NULL,
    [Paymode] [varchar](6) NULL,
    [Chq_BankTxnNo] [varchar](15) NULL,
    [CompanyBankID] [varchar](20) NULL,
    [CompanyBankAcctno] [varchar](20) NULL,
    [Cl_BankID] [varchar](10) NULL,
    [Cl_BankAcctno] [varchar](20) NULL,
    [LedgerRefNo] [varchar](20) NULL,
    [Status] [char](1) NULL,
    [uMkrid] [varchar](11) NULL,
    [uMkrdt] [datetime] NULL,
    [aMkrid] [varchar](11) NULL,
    [aMkrdt] [datetime] NULL,
    [BF_Generated] [varchar](5) NULL,
    [bankaccttype] [varchar](20) NULL,
    [LoanType] [varchar](20) NULL
) ON [PRIMARY]
This is my working query.
declare @LasAcctNo varchar(20)  = 'las00004'      
select distinct LoanTranchNo,  convert(varchar,convert(datetime,LoanStartDate),103) LoanStartDate,
(select CONVERT(numeric(18,2),ROUND( sum(amount),2)) from  led where  GLCode = 'LASPAC' and LoanRefNo = LoanTranchNo and Dr_Cr='D' ) as LoanAmount,
(select CONVERT(numeric(18,2),ROUND( sum(amount),2)) from  led where  GLCode = 'LASPAC' and LoanRefNo = LoanTranchNo and Dr_Cr='C' ) PrincipalPaid
, (select CONVERT(numeric(18,2),ROUND( sum(amount),2)) from  led where  GLCode = 'LASPAC' and LoanRefNo = LoanTranchNo) 'OsLoanAmount',
InterestRate,
(select CONVERT(numeric(18,2),ROUND( sum( case when Dr_Cr='C' then amount *-1 else amount  end  ),2)) from  led where GLCode = 'INTRAC' and LoanRefNo = LoanTranchNo)  InterestAccruedDue,
(select CONVERT(numeric(18,2),ROUND( sum(case when Dr_Cr='C' then amount *-1 else amount  end ),2)) from  led where  GLCode = 'PNLINT' and LoanRefNo = LoanTranchNo)  PenalDue ,0 as 'TotalOutstanding',
(select CONVERT(numeric(18,2),ROUND( sum(case when Dr_Cr='C' then amount *-1 else amount  end ),2)) from  led where  GLCode = 'INTRND' and LoanRefNo = LoanTranchNo) InterestAccruedbutnotdue,
(select CONVERT(numeric(18,2),ROUND( sum(case when Dr_Cr='C' then amount *-1 else amount  end ),2)) from  led where  GLCode = 'TDSACC' and LoanRefNo = LoanTranchNo)as  TDS,
(select CONVERT(numeric(18,2),ROUND( sum(case when Dr_Cr='C' then amount *-1 else amount  end ),2)) from  led where  GLCode = 'CLNCTRLAC' and AccountID = Acctno)as  ControlAcct,
convert(varchar,convert(datetime,LoanExpiryDate),103) LoanEndDate,IntrFrequency,isnull(LoanType,'SECURED')  as LoanType
from tbl_loanmst
left join  led on LoanTranchNo= LoanRefNo and AcctNo = AccountID
where AcctNo= @LasAcctNo and status='A'
Is it possible to rewrite this query using joins? if yes how?
In order to make things as convenient as possible for you I am included insert statements on the following link: http://en.textsave.org/mwOb
 
    