HiI have a table with all varchar data for all different fields for money and int etc. I want to do a calcuation in one field with the rule as below:UPDATE [dbo].[tblPayments]SET [PreInjuryWage]= CASE WHEN [WeekNo]<14 THEN ([MaxWorkCover]+ [WeeklyEarnings] )/0.95 ELSE ([MaxWorkCover] + 0.80 * [WeeklyEarnings] ) /0.80 ENDI tried this command after many other ways of triesUPDATE [dbo].[tblPayments1]SET [PreInjuryWage]= CASE WHEN [WeekNo]<14 THEN CAST ( (cast([MaxWorkCover] as money )+ cast([WeeklyEarnings] as money ))/0.95 AS Varchar(10) )ELSE CAST ( (convert(money, [MaxWorkCover] + (0.80 * convert(money, [WeeklyEarnings] )) )/0.80 ) as varchar(10))END
The structure of the table ( its a legacy table from 2000 i beleive)CREATE TABLE [dbo].[tblPayments]( [PaymentID] [int] IDENTITY(1,1) NOT NULL, [ClaimID] [int] NOT NULL, [WeekNo] [smallint] NULL, [PayPeriod] [varchar](10) NULL, [StartDate] [varchar](10) NULL, [EndDate] [varchar](10) NULL, [MaxWorkCover] [varchar](10) NULL, [HourlyRate] [varchar](10) NULL, [HoursWorked] [varchar](10) NULL, [Loading] [varchar](10) NULL, [WeeklyEarnings] [varchar](10) NULL, [Payment] [varchar](10) NULL, [UnderThreshold] [varchar](10) NULL, [OverThreshold] [varchar](10) NULL, [MakeUpPay] [varchar](10) NULL, [Reimbursement] [varchar](10) NULL, [ReimbComments] [varchar](255) NULL, [PreInjuryWage] [varchar](10) NULL, [AwardWage] [varchar](10) NULL, CONSTRAINT [PK__tblPayments__4316F928] PRIMARY KEY CLUSTERED ( [PaymentID] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
Can you help me to solve this?? I am getting the error:Msg 8115, Level 16, State 5, Line 1Arithmetic overflow error converting numeric to data type varchar.