根据距日期超过1年,2年和3年的当前日期选择值

时间:2018-10-04 06:43:20

标签: sql sql-server date

美好的一天,

我希望有人可以帮我做一小段代码。我已经建立了一个销售代表佣金报告,对于销售代表赚来的每件商品,都有一天销售代表首先将该商品视为新业务,例如,商品A从01/01/2018开始。 / p>

他们的佣金细分意味着,他们在开始日期(01/01/2018 <当前日期的一年)之后的第一年获得7%,如果(01/01/2018>当前日期的1年),则获得5% <当前日期的2年),如果(01/01/2018>当前日期的2年<当前日期的3年),则为2.5%。

我已经为整个报告编写了select语句,但是我正在努力寻找与此相关的任何信息。

我假设我需要一个CASE语句,但是我要告诉SQL检查当前日期是否小于一年,或者大于一年,但是少了2年,等等。

非常感谢您的协助!

1 个答案:

答案 0 :(得分:1)

我想您可以像这样使用CASE

SELECT
    CASE
        WHEN CURRENT_TIMESTAMP >= DATEADD(YEAR, 2, startdate) THEN 2.5
        WHEN CURRENT_TIMESTAMP >= DATEADD(YEAR, 1, startdate) THEN 5.0
        ELSE 7.0
    END AS commission

请注意,案例是经过排序的。