Во-первых, я надеюсь, что мой вопрос не слишком плохо сформулирован, проще объяснить проблему, чем задавать вопрос одним предложением
Вот моя проблема:
со следующимзапрос, я получаю этот результат:
SELECT e.employes_id AS user_id, IFNULL(e.employes_initiales, 'Divers') AS initials, s.lieu, s.debut, s.fin, IFNULL(s.couleur, '#000000') AS color , s.id AS p_id,
CASE when couleur = '#00FF00' then 1 else 0 END as callservice
FROM ap_employes e LEFT JOIN
(ap_planing_employes sl JOIN
ap_planing s
ON sl.id_planing = s.id AND s.effacee = 0 AND
DATE('2018-04-27') BETWEEN CAST(s.debut AS DATE) AND CAST(s.fin AS DATE))
ON employes_id = sl.id_employes
WHERE e.employes_effacee = 0
ORDER BY e.employes_id ASC, FIELD(s.couleur,'#00FF00') desc, s.debut ASC, s.lieu ASC
Результат
user_id initials lieu debut fin color p_id callservice
------- -------- ---------------------------------------- ------------------- ------------------- ------- ------ -------------
1 DV Test 2018-04-27 07:30:00 2018-04-27 07:30:00 #000000 526 0
1 DV Another Test 2018-04-27 09:00:00 2018-04-27 09:00:00 #000000 504 0
1 DV Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
2 SA Call service 2018-04-27 00:00:00 2018-04-28 00:00:00 #00FF00 336 1
2 SA Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
3 SW Customer x 2018-04-27 00:00:00 2018-04-27 00:00:00 #000000 547 0
3 SW Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
3 SW End at 2pm 2018-04-27 14:00:00 2018-04-27 14:00:00 #FF0000 538 0
4 JE Test2 2018-04-27 10:00:00 2018-04-27 10:00:00 #000000 541 0
4 JE Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
5 FR Holydays 2018-04-11 00:00:00 2018-04-29 00:00:00 #FF0000 75 0
5 FR Holydays 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
8 IE Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
999 Divers (NULL) (NULL) (NULL) #000000 (NULL) 0
Хорошо, пока это идеально
Как вы можете видеть, в строке 4, последний столбец"callservice" равен 1, потому что цвет в этой строке правильный по моей просьбе
Теперь моя проблема.Хотелось бы, чтобы когда ни у кого не было цвета, соответствующего услуге вызова, он автоматически назначается идентификатору пользователя 3
Если у любого пользователя с цветом, соответствующим службе вызова, то у него будет коллон "callservice""1. 1. 1017 * В противном случае по умолчанию это должен быть идентификатор пользователя 3 ...
Я понял, как работает функция CASE WHEN, но не могу применить ее к нескольким строкам ...
Как это сделать?
Если мой вопрос не совсем понятен, я могу попытаться улучшить
Вот пример результата, который я хочу получить.Как видите, ни у кого нет цвета, соответствующего сервису вызовов, поэтому сервис вызовов назначен идентификатору пользователя 3
user_id initials lieu debut fin color p_id callservice
------- -------- ---------------------------------------- ------------------- ------------------- ------- ------ -------------
1 DV Test 2018-04-27 07:30:00 2018-04-27 07:30:00 #000000 526 0
1 DV Another Test 2018-04-27 09:00:00 2018-04-27 09:00:00 #000000 504 0
1 DV Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
2 SA Customer y 2018-04-27 00:00:00 2018-04-28 00:00:00 #000000 336 0
2 SA Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
3 SW Customer x 2018-04-27 00:00:00 2018-04-27 00:00:00 #000000 547 1
3 SW Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 1
3 SW End at 2pm 2018-04-27 14:00:00 2018-04-27 14:00:00 #FF0000 538 1
4 JE Test2 2018-04-27 10:00:00 2018-04-27 10:00:00 #000000 541 0
4 JE Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
5 FR Holydays 2018-04-11 00:00:00 2018-04-29 00:00:00 #FF0000 75 0
5 FR Holydays 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
8 IE Something 2018-04-27 12:00:00 2018-04-27 12:00:00 #0000FF 451 0
999 Divers (NULL) (NULL) (NULL) #000000 (NULL) 0
Заранее спасибо за ваши ответы