Hi I need to run dynamic SQL Query. In that I need to add 'Sum' value to variable.
Here is my Query:
DECLARE @FinYear varchar(10), @TableName varchar(30), @Sql varchar(MAX)='',@FinStartDate datetime
DECLARE @Op_P_loan numeric(9,2),@Op_R_loan numeric(9,2)`enter code here`
DECLARE CurQueryOp CURSOR FOR
SELECT FinDesc
FROM FinancialYear
WHERE FinStartDate <=@FromDate
OPEN CurQueryOp
FETCH NEXT FROM CurQueryOp INTO @FinYear
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @TableName = name
FROM sys.tables
WHERE name LIKE '%TransPass%'+REPLACE(@FinYear,'-','')+'%'
IF ISNULL(@TableName,'') <> ''
BEGIN
SET @Sql='SELECT '+@Op_P_loan+'='+ISNULL(@Op_P_loan,0)+'+SUM(CASE WHEN Receipt = ''P'' THEN Amount ELSE 0 END), '+
' '+@Op_R_loan+'='+ISNULL(@Op_R_loan,0)+'+SUM(CASE WHEN Receipt = ''R'' THEN Amount ELSE 0 END) '+
'FROM '+@TableName+' '+
'WHERE TranDate between ''2010/04/01'' AND '''+CONVERT(VARCHAR,DATEADD(DAY,-1,@FromDate),102)+''' '+
'AND LedgerCode=''300'' '+
'AND CustomerCode='''+@CustomerCode+''' '
EXEC(@Sql)
END
FETCH NEXT FROM CurQueryOp INTO @FinYear
END
CLOSE CurQueryOp
DEALLOCATE CurQueryOp
When I am executing this, I am getting the following error:
Arithmetic overflow error converting varchar to data type numeric.