Мне нужна ваша помощь, чтобы решить проблему, с которой я столкнулся ... Я использую функцию CASE и добавляю псевдоним к ее результату, добавляя «AS 'RESULT» после ее «END».
Событие, хотя запрос кажется запущенным, я все еще получаю следующие предупреждения через phpmyadmin:
Нераспознанное ключевое слово (рядом с AS)
Неожиданный токен (рядом с "РЕЗУЛЬТАТ")
Понятия не имею, почему я получаю это ... Буду признателен за вашу помощь, чтобы выделить мою ошибку ;-)
SELECT
app_fd_List_of_components.c_component,
app_fd_List_of_orders.c_package,
app_fd_List_of_orders.c_status,
app_fd_List_of_orders.dateCreated,
app_fd_List_of_orders.c_orderId,
app_fd_List_of_orders.Id,
temptablename.datetime AS Int_Date,
temptablename2.datetime AS Prdw3_Date,
@counterStatus := IF(
app_fd_List_of_orders.c_status <> 'Deployment completed',
IF(
temptablename.datetime IS NOT NULL,
'Counting',
'Initializing'
),
'Complete'
) AS 'Counter_status',
@counter := IF(
app_fd_List_of_orders.c_status <> 'Deployment completed',
IF(
temptablename.datetime IS NOT NULL,
(
35 - DATEDIFF(
CURRENT_DATE(), temptablename.datetime)
),
'n/a'
),
DATEDIFF(
temptablename2.datetime,
temptablename.datetime
)
) AS 'Counter',
CASE (WHEN(
(@counterStatus = 'Counting') AND(@counter < 0)
) THEN "black" WHEN(
(@counterStatus = 'Counting') AND(@counter > 5)
) THEN "green" WHEN(
(@counterStatus = 'Counting') AND(-1 < @counter < 5)
) THEN "orange" WHEN(
(@counterStatus = 'Complete') AND(@counter > 35)
) THEN "black" WHEN(
(@counterStatus = 'Complete') AND(@counter < 35)
) THEN "green" ELSE "n/a")
END AS 'RESULT'
FROM
app_fd_List_of_orders
JOIN app_fd_List_of_components ON
app_fd_List_of_orders.c_component = app_fd_list_of_components.id
LEFT JOIN(
SELECT app_form_data_audit_trail.datetime,
app_form_data_audit_trail.data
FROM
app_form_data_audit_trail
WHERE
SUBSTRING_INDEX(
SUBSTRING_INDEX(
app_form_data_audit_trail.data,
'"opdetails":"',
-1
),
'"',
1
) = 'int'
) AS temptablename
ON
app_fd_list_of_orders.c_orderid = SUBSTRING_INDEX(
SUBSTRING_INDEX(
temptablename.data,
'"orderId":"',
-1
),
'"',
1
)
LEFT JOIN(
SELECT app_form_data_audit_trail.datetime,
app_form_data_audit_trail.data
FROM
app_form_data_audit_trail
WHERE
SUBSTRING_INDEX(
SUBSTRING_INDEX(
app_form_data_audit_trail.data,
'"opdetails":"',
-1
),
'"',
1
) = 'prdw3'
) AS temptablename2
ON
app_fd_list_of_orders.c_orderid = SUBSTRING_INDEX(
SUBSTRING_INDEX(
temptablename2.data,
'"orderId":"',
-1
),
'"',
1
)
В чем вы оправдываете синтаксис / langauge intro / summary, что то, что вы написали, является правильным? (Риторический.) Пожалуйста, прочтите и действуйте по минимальный воспроизводимый пример. И Как спросить и текст при наведении курсора на стрелку вниз.






Вы пробовали убрать скобки вокруг оператора CASE?
CASE
WHEN @counterStatus = 'Counting' AND @counter < 0 THEN "black"
WHEN @counterStatus = 'Counting' AND @counter > 5 THEN "green"
WHEN @counterStatus = 'Counting' AND -1 < @counter < 5 THEN "orange"
WHEN @counterStatus = 'Complete' AND @counter > 35 THEN "black"
WHEN @counterStatus = 'Complete' AND @counter < 35 THEN "green"
ELSE "n/a"
END AS 'RESULT'
Обновлено: Я тоже не уверен, что это возможно:
WHEN @counterStatus = 'Counting' AND -1 < @counter < 5 THEN "orange"
Возможно, его нужно будет записать как:
WHEN @counterStatus = 'Counting' AND -1 < @counter AND @counter < 5 THEN "orange"
Старайтесь использовать правильный отступ, так будет легче обнаруживать ошибки.