2015-03-19 96 views
1
SrNo Name  Amount ApplyTax 
1 John  500  Yes 
2 Peter 700  No 
3 Tom  900  Yes 

条件创建列运算查询。如果我想在20%的那些谁ApplyTax为1,我该怎么办征收的税收,在一个查询:如何根据其他列

的输出我需要的是

SrNo Name  Amount Tax 
1 John  500  100 
2 Peter 700  0 
3 Tom  900  180 

我是SQL新手,所以任何帮助将是伟大的。

感谢, 牛逼

回答

1

试试这个:

select SrNo,Name, Amount , 
case when ApplyTax = 'Yes' then Amount*0.20 
else 0 
end as Tax 
from tablename 
1

如果ApplyTaxBIT类型的,你可以这样做:

DECLARE @t TABLE 
    (
     SrNo INT , 
     Amount MONEY , 
     ApplyTax BIT 
    ) 

INSERT INTO @t 
VALUES (1, 500, 1), 
     (2, 700, 0), 
     (3, 900, 1) 


SELECT SrNo , 
     Amount , 
     Amount * ApplyTax * 0.2 AS TaxAmount 
FROM @t 

输出:

SrNo Amount TaxAmount 
1  500.00 100.00000 
2  700.00 0.00000 
3  900.00 180.00000 

否则,您需要应用CASE表达式,如@Rahul Tripathi的答案。