【发布时间】:2016-10-10 11:37:19
【问题描述】:
请您帮我解决以下问题: 考虑汽车维修公司的这两张表:
Old_Value New_Value Created
0 1 2016/09/14
1 2 2016/09/15
2 3 2016/09/19
Value Description
0 Not Diagnosed Yet
1 In Queue
2 In Progress
3 Fixed
我正在尝试计算处理时间,即“进行中”和“已修复”状态之间的日期差:
Select
datediff(day, (case when Old_Value='1' and New_Value='2' then Created else Null end), (case when Old_Value='2' and New_Value='3' then Created else Null end))
as Handle_Time
from tb1
我得到的只是一个错误消息。 请大家帮忙,谢谢。
【问题讨论】:
-
预期结果是什么。
DATEDIFF也是SQL SERVER函数 -
预期结果是整数格式。即 Handle_time 是 4 天。这是状态更改为“进行中”与更改为“已修复”之间的日期差。结果应该是这样的:italic
Handle_Time 4 -
第一个表只有三行吗?如果您有更多行,则几乎无法确定哪些值匹配。
-
是的,它只有 3 行。
-
谢谢你们的帮助,很快。 @GordonLinoff