【问题标题】:Select value based on current date being more than 1, 2 and 3 years from a date选择基于当前日期的值,该日期距某个日期超过 1、2 和 3 年
【发布时间】:2018-10-04 06:43:19
【问题描述】:

早安,

我希望有人可以帮助我编写一小行代码。我已经建立了一个销售代表佣金报告,对于销售代表赚取的每个项目,都有一个代表第一次将项目作为新业务获得的日期,例如,项目 A 开始于 2018 年 1 月 1 日。

他们的佣金分解意味着他们在开始日期后的第一年获得 7%(2018 年 1 月 1 日 当前日期的 1 年),他们获得 5% 当前日期的 2 年

我已经为整个报告编写了 select 语句,但我正在努力寻找有关这方面的任何信息。

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

非常感谢您的帮助!

【问题讨论】:

  • 3年以上呢?并请发布一些示例数据和预期结果
  • 嗨,Salman A。从 3 年起,comm 保持在 2.5% 不变。

标签: sql sql-server date


【解决方案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

请注意,案例是排序的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 2020-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    相关资源
    最近更新 更多