如何在 SQL Server 中使用给定数据创建存储过程

问题描述 投票:0回答:1

我想使用下面给定的数据在 SQL Server 中创建一个存储过程,但我不知道如何实现这一点。我的要求是当费率列不等于 100 并且结束日期已过期时,将状态列更改为逾期。

if (Rate == 100)
    Status = "Completed"
else if (Rate != 100 && EndDate < Today) //when end date expired and rate is not equal 100
    Status = "Overdue"
else
    Status = "Not started" //rate equal 0 and end date is intact

预期输出:

Tasking
表:

任务ID 任务名称 开始日期 结束日期 比率(%) 状态
1 挖掘 2024 年 2 月 16 日 2024 年 2 月 17 日 25 逾期
2 清洁 2024 年 2 月 19 日 2024 年 2 月 20 日 30 进行中
3 种植 2024 年 2 月 19 日 2024 年 2 月 19 日 100 已完成
4 种植 2024 年 2 月 22 日 2024 年 2 月 22 日 0 尚未开始
sql sql-server sql-server-2014-express
1个回答
0
投票

您检查过案例陈述吗?

尝试类似的事情

SELECT TaskId, TaskName, StartDate, EndDate, Rate,
CASE
   WHEN Rate = 100 THEN 'Completed'
   WHEN Rate < 100 AND EndDate < GETUTCDATE() THEN 'Overdue'
   WHEN Rate < 100 AND EndDate >= GETUTCDATE() THEN 'In progress'
   ELSE 'Not started'
END as status

FROM Data
© www.soinside.com 2019 - 2024. All rights reserved.