Home > Enterprise >  SQL Server how to multiply dollar with decimal?
SQL Server how to multiply dollar with decimal?

Time:08-11

Given an account table that has two columns, which are account_holder and amount.

Exaample

account_holder | amount
------------------------
James Brown    | $2302.03
Phille Jackson | $5643.55

Both columns are with the type VARCHAR(20). What I need to do is to multiply the amount with 5% to get the interest.

The expected output would be like

account_holder | interest
------------------------
James Brown    | $115.10
Phille Jackson | $282.18

What I can come up with is to cast the amount to money type. And concat a dollar sign with the number after calculation. Is there any better way to do it?

CodePudding user response:

Best approach is to change the data type of your column. Since you can not change data type , you can try like below :

CREATE TABLE Accounts (
  account_holder  Varchar(20) NOT NULL,
  Amount Varchar(20)
);

INSERT INTO Accounts (account_holder, Amount) VALUES ('James Brown', '$2302.03');
INSERT INTO Accounts (account_holder, Amount) VALUES ('Phille Jackson', '$5643.55');

-- 1. Remove $
-- 2. Convert to decimal
-- 3. Get Interest
-- 4. Again convert to decimal with 2 places
-- 5. Concat $ 

SELECT account_holder, Amount, 
CONCAT('$', CONVERT(DECIMAL(10,2),(CONVERT(DECIMAL(10,2), RIGHT(Amount, len(AMOUNT)-1)))/20)) Interest
FROM Accounts
  • Related