I wrote a repository procedure that should return values, for example -
J1 J2 J3
I have a table called Journal_Entry . When the number of rows in the table is 0, it gives the result J1 , but as the number of rows increases, it shows an error -
"Conversion failed when converting the varchar value 'J' to data type int."
#here Voucher_No is a column to save the result.
The code is like -
CREATE PROC [dbo].[getVoucherNo] AS BEGIN DECLARE @Prefix VARCHAR(10)='J' DECLARE @startFrom INT=1 DECLARE @maxCode VARCHAR(100) DECLARE @sCode INT IF((SELECT COUNT(*) FROM dbo.Journal_Entry) > 0) BEGIN SELECT @maxCode = CAST(MAX(CAST(SUBSTRING(Voucher_No,LEN(@startFrom)+1,LEN(Voucher_No)- LEN(@Prefix)) AS INT)) AS varchar(100)) FROM dbo.Journal_Entry; SET @sCode=CAST(@maxCode AS INT) SELECT @Prefix + LEN(CAST(@maxCode AS VARCHAR(10))+1) + CAST(@maxCode AS VARCHAR(100)) END ELSE BEGIN SELECT(@Prefix + CAST(@startFrom AS VARCHAR)) END END
source share