Yes Sourabh I got and I have seen your table structure..
Use below procedure it surely working...
ALTER procedure [dbo].[sp_SearchParticularsDetailsByPivot]
(
@fromdate datetime = '2016-07-18',
@todate datetime='2016-07-18'
)
as
begin
declare @expenseNames nvarchar(max)='';
--select @expenseNames ='[Building_EXPENSES], [eLECTRIC]'
--select @expenseNames= case when datalength(@expenseNames) = 0 then '' else ', ' end + '[' + ltrim(rtrim(Expenses_Name)) + ']'
--from expenses
(select @expenseNames +=
+'['+Expenses_Name+']'
+','
FROM dbo.Expenses)
set @expenseNames=(SELECT LEFT(@expenseNames, (LEN(@expenseNames)-1)))
declare @dynamicSQL nvarchar(max)='';
print(@expenseNames)
select @dynamicSQL =
'select * from
(select dbo.CreditDebit.ID AS SLNO, TransactionDate, Particular,Expenses_Name,Debit_Expenses,Credit_Expenses,Expenses,
Balance from dbo.CreditDebit inner join
dbo.CreditExpenses on dbo.CreditDebit.ID=dbo.CreditExpenses.Credit_ID
inner join dbo.Expenses on dbo.CreditExpenses.Expenses_ID=dbo.Expenses.ID
where DATEDIFF(day,'''+CONVERT(VARCHAR(10),@fromdate,111)+''',TransactionDate)>=0 and DATEDIFF(day,'''+Convert(VARCHAR(10),@todate,111)+''',TransactionDate)<=0 ) src
pivot
(
sum(Expenses)
for Expenses_Name In ('+@expenseNames+')
)as pvt'
print @dynamicSQL
EXEC (@dynamicSQL)
end