【发布时间】:2017-11-02 20:58:18
【问题描述】:
我在 Excel VBA 中有这段代码:
If Cells(lngRow, ConstTASTMS_ActivateTime).Value < getdate() - 7 Then
Cells(lngRow, ConstTASTimeClass).Value = "BOH"
If Cells(lngRow, ConstTASTask_Status) = "Closed" Then
If Cells(lngRow, ConstTASActual_EndDate).Value <= getdate() - 7 Then
Cells(lngRow, ConstTASTimeClass).Value = "BOH-CO"
Else
Cells(lngRow, ConstTASTimeClass).Value = "BOH-C"
End If
End If
If Cells(lngRow, ConstTASTask_StatusReason) = "Canceled" Then
If Cells(lngRow, ConstTASActual_EndDate).Value <= getdate() Then
Cells(lngRow, ConstTASTimeClass).Value = "BOH-XO"
Else
Cells(lngRow, ConstTASTimeClass).Value = "BOH-X"
End If
End If
Else
Cells(lngRow, ConstTASTimeClass).Value = "New"
If Cells(lngRow, ConstTASTask_Status) = "Closed" Then Cells(lngRow, ConstTASTimeClass).Value = "New-C"
If Cells(lngRow, ConstTASTask_Status) = "Canceled" Then Cells(lngRow, ConstTASTimeClass).Value = "New-X"
End If
现在,我需要将它翻译成 SQL 语句。 到目前为止,我得到了这个,并且认为它不正确。 有人可以看看并帮助我纠正它吗?
CASE WHEN TMS_ActivateTime < getdate() - 7 THEN
TimeClass = "BOH"
CASE WHEN Task_Status = "Closed" THEN
CASE WHEN Actual_EndDate <= getdate() - 7 THEN
TimeClass = "BOH-CO"
ELSE
TimeClass = "BOH-C"
CASE WHEN Task_StatusReason = "Canceled" THEN
CASE WHEN Actual_EndDate <= getdate() THEN
TimeClass = "BOH-XO"
ELSE
TimeClass = "BOH-X"
ELSE
TimeClass = "New"
CASE WHEN Task_Status = "Closed" THEN TimeClass = "New-C"
CASE WHEN Task_Status = "Canceled" THEN TimeClass = "New-X"
END
【问题讨论】:
-
请阅读Why is “Can someone help me?” not an actual question?和How to Ask。您的问题缺少一个问题。
-
记住 case 是 case when condition then value else othervalue end。我在这里看不到您的多个案件的单一结局。