Here is my situation:
In my table i two fields:
- Price (decimal (15,4)
- TaxId (int)
TaxId
value is not stored anywhere but there are only two values (actualy 3).
- 1 (8.5%)
- 2 (20%)
- NULL (no tax)
Now i need calculated column in my view that would calculate new price with tax included.
Any idea?
I went with something like:
SELECT...
CASE TaxId
WHEN 1 THEN Price *1.085 AS test
WHEN 2 THEN Price *1.2 AS test
WHEN NULL THEN Price AS test END
FROM...
UPDATE:
I have managed to execute the query with success.
CASE dbo.Table.TaxId WHEN 1 THEN dbo.Table.Price*1.085 WHEN 2 THEN dbo.Table.Price*1.2 ELSE dbo.Table.Price END AS CalcualtedPrice
Now I only need to make CalculatedPrice as decimal (15,4). How can i set that?
Yes, google how to create a view in SQL Server and in the SELECT statement of your view multiply the Price column with the TaxId column. Since you have to consider the NULL value you should use COALESCE
like this
SELECT
Price * (1 + COALESCE(TaxId/100), 0) AS newValue
...
assuming that you have just '8.5' in your column and not '8.5%'. Is it varchar or not?
P.S.: COALESCE()
returns the first non-null value
UPDATE after question was edited:
You just have to slightly modify your syntax
SELECT
CAST(
CASE
WHEN TaxId = 1 THEN Price *1.085
WHEN TaxId = 2 THEN Price *1.2
WHEN TaxId IS NULL THEN Price END AS decimal(15,4)
) AS CalculatedPrice
FROM...