如何根据其他列的条件创建列计算查询

时间:2015-03-19 06:47:39

标签: sql sql-server-2008

SrNo Name     Amount  ApplyTax
1    John     500      Yes 
2    Peter    700      No
3    Tom      900      Yes

如果我想对那些将ApplyTax作为1的人征收20%的税,我该如何在一个查询中执行此操作:

我需要的输出是

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

我是SQL的新手,所以任何帮助都会很棒。

谢谢, Ť

2 个答案:

答案 0 :(得分:1)

试试这个:

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

答案 1 :(得分:1)

如果ApplyTax列的类型为BIT,则可以执行以下操作:

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的回答一样。