我有一个查询返回给定员工的工资成本
SELECT totalhours * staffbaserate AS TotalCost
FROM newrotaRaw
WHERE staffref = @staffref
但是如果返回的值是>我需要做一些额外的数学运算。 105.我需要做的一点数学是,如果值是< 105该值按原样返回,但是如果该值> 105然后我需要做值* 1.128。
例如:
John Smith的成本是90因此查询应返回90
David Smith的费用为140因此查询应返回157.92
我确信有一些方法可以使用替换来让它做我想要的但是我只使用替换完全匹配,在这种情况下,替换是以值为条件的。
非常感谢任何帮助!
答案 0 :(得分:6)
尝试这样的事情。
SELECT TotalCost =
CASE
WHEN (totalhours * staffbaserate) < 105 THEN (totalhours * staffbaserate)
ELSE (totalhours * staffbaserate) * 1.128
END
FROM newrotaRaw
WHERE staffref = @staffref
答案 1 :(得分:3)
SELECT
CASE WHEN totalhours * staffbaserate <= 105 THEN totalhours * staffbaserate
ELSE totalhours * staffbaserate * 1.128 END AS TotalCost
FROM newrotaRaw
WHERE staffref = @staffref
答案 2 :(得分:1)
SELECT totalhours * staffbaserate * (CASE WHEN (totalhours * staffbaserate) < 105 THEN 1 ELSE 1.128 END) AS TotalCost
FROM newrotaRaw
WHERE staffref = @staffref
答案 3 :(得分:0)
您正在寻找CASE statement。