Click here to Skip to main content
15,891,775 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i am getting error in my dynamic pivot query in sql server 2012

What I have tried:

SQL
USE [BMS]
GO
/****** Object:  StoredProcedure [dbo].[sp_SearchParticularsDetails]    Script Date: 12-07-2016 11:19:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[sp_SearchParticularsDetails]
(
 @fromdate datetime,
 @todate datetime
)
as
begin
declare @columnname as varchar(100)
select @columnname=ISNULL(@columnname+',','')+QUOTENAME(Expenses_Name) from (select distinct Expenses_Name from dbo.Expenses) as Expenses_Name
select * from
(
select dbo.CreditDebit.ID as SLNO,TransactionDate,Particular,Balance,Expenses,Credit_Expenses,Debit_Expenses,','+@columnname
FROM DBO.CreditDebit
 INNER JOIN DBO.CreditExpenses
on dbo.CreditDebit.ID=dbo.CreditExpenses.Credit_ID inner join 
dbo.Expenses on dbo.Expenses.ID=dbo.CreditExpenses.Expenses_ID 
where 
dbo.CreditDebit.TransactionDate between @fromdate and @todate
) as details
pivot(
  sum(Expenses)
  for Expenses_Name in()as pvt
end

error i am getting in '+@columnname,details and ('+@columnname+')
Posted
Updated 11-Jul-16 20:53pm
v2
Comments
Patrice T 12-Jul-16 2:54am    
No Repost please
Use Improve question to update your question.
Suvendu Shekhar Giri 12-Jul-16 2:55am    
But you haven't written anywhere that line in the query i.e,
'+@columnname,details and ('+@columnname+')

Can you share the actual error message?
Member 11882484 12-Jul-16 2:58am    
i have written it as u see once again
declare @columnname as varchar(100)
select @columnname=ISNULL(@columnname+',','')+QUOTENAME(Expenses_Name) from (select distinct Expenses_Name from dbo.Expenses) as Expenses_Name
select * from
(
select dbo.CreditDebit.ID as SLNO,TransactionDate,Particular,Balance,Expenses,Credit_Expenses,Debit_Expenses,','+@columnname
FROM DBO.CreditDebit
INNER JOIN DBO.CreditExpenses
on dbo.CreditDebit.ID=dbo.CreditExpenses.Credit_ID inner join
dbo.Expenses on dbo.Expenses.ID=dbo.CreditExpenses.Expenses_ID
where
dbo.CreditDebit.TransactionDate between @fromdate and @todate
) as details
pivot(
sum(Expenses)
for Expenses_Name in()as pvt
Member 11882484 12-Jul-16 3:17am    
any one know thann help me..
Shweta N Mishra 12-Jul-16 6:46am    
dynamic Pivot does not work until and unless you use dynamic query. i.e. you need to prepare a query string with dynamic columns and then execute it.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900