案例陈述中的问题

时间:2016-01-30 07:10:14

标签: php mysql case

我在此CASE声明中有一个问题。希望它是一个语法问题。

CASE quot_status.open_auth_date IS NULL
WHEN 1 THEN 'Pending' 
WHEN 2 THEN 'Completed' 
ELSE IF WHEN tender.open_authorization > quot_status.open_auth_date THEN 'Due' 
END 
AS `Open Auth Status`

在上面的tender.open_authorization和quot_status.open_auth_date就像比较日期。

让我解释一下这个场景。我的mysql数据库中有两个日期字段。第一个字段称为“quot_status.open_auth_date”,第二个字段为“tender.open_authorization”。我需要在这里查看3个条件。第一个条件是我需要检查'tender.open_authorization> quot_status.open_auth_date'然后打开身份验证状态应显示结果'到期'。如果它的到期案件声明必须退出或结束。第二个条件是我应该检查quot_status.open_auth_date ='NULL',如果它的NULL Open Auth Status应该将结果显示为'Pending',否则它将显示'Completed'。

2 个答案:

答案 0 :(得分:0)

您的格式有一些问题, 您可以按照以下语法进行查询......

    CASE  
            WHEN (ISNULL(quot_status.open_auth_date) && < status=1 > )     THEN 'Pending' 
            WHEN (ISNULL(quot_status.open_auth_date) && < status=2 > )     THEN 'Completed' 
            WHEN (tender.open_authorization > quot_status.open_auth_date ) THEN 'Due' 
                                                                           ELSE '< Unknown >'
    END AS `Open Auth Status`

答案 1 :(得分:0)

CASE quot_status.open_auth_date 
       WHEN 1 THEN 'Pending' 
       WHEN 2 THEN 'Completed'
       WHEN  tender.open_authorization >  quot_status.open_auth_date THEN 'Due' 
END AS `Open Auth Status`

尝试此代码