Объединение первых двух случаев в Mysql - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть часть запроса MySQL, которая имеет

$PendingNewquery = "
        CASE
            WHEN s.pending='Y' THEN 'P'
            WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N' 
            WHEN s.Pending='Y' OR MAX(fqc.ChangeTime) IS NULL THEN 'PN'
        END

Я не получаю никаких результатов для 'PN', который объединяет первые два случая.Как я могу сделать это без использования WHERE?

1 Ответ

0 голосов
/ 26 ноября 2018

Вам нужно изменить выражение вашего дела, например:

CASE
    WHEN s.Pending='Y' AND MAX(ChangeTime) IS NULL THEN 'PN' 
    WHEN s.pending='Y' THEN 'P'
    WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N'  
END

Я полагаю, что использование «И» и перемещение вашей последней строки в верхнюю часть будет иметь больше смысла в вашей ситуации, так как вы увидите PN или NULLв вашем основном запросе, если вы используете с «ИЛИ» в результате.Однако, если вы настаиваете на использовании ИЛИ, то:

CASE
    WHEN s.pending='Y' THEN 'P'
    WHEN MAX(fqc.ChangeTime) IS NULL THEN 'N' 
    WHEN s.Pending='Y' OR MAX(ChangeTime) IS NULL THEN 'PN' 
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...