powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT внутри CASE не работает
5 сообщений из 5, страница 1 из 1
SELECT внутри CASE не работает
    #39194637
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так работает
Код: sql
1.
2.
3.
4.
5.
6.
SELECT 
    (SELECT DATE_ADD(MIN(cr1.remains_time), INTERVAL cch.g_days1p DAY) 
    FROM cargo_remains cr1 WHERE cr1.cargo_card_id = cc.id) AS test_d1p,

....
FROM...



А так нет, выдает NULL
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
CASE storage_type
WHEN 'placement' THEN
    (SELECT DATE_ADD(MIN(cr1.remains_time), INTERVAL cch.g_days1p DAY) 
    FROM cargo_remains cr1 WHERE cr1.cargo_card_id = cc.id) /* (открытое) */
WHEN 'warehouse' THEN
    (SELECT DATE_ADD(MIN(cr1.remains_time), INTERVAL g_days1w DAY) 
    FROM cargo_remains cr1 WHERE cr1.cargo_card_id = cc.id) /* (крытое) */
END AS time_1,

...
FROM...
...
Рейтинг: 0 / 0
SELECT внутри CASE не работает
    #39194835
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запихни CASE в INTERVAL...
...
Рейтинг: 0 / 0
SELECT внутри CASE не работает
    #39194982
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЗапихни CASE в INTERVAL...
Самое интересное, что такой вариант тоже дает NULL...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT
(SELECT DATE_ADD(MIN(cr1.remains_time), 
        				 INTERVAL 
                         	            (CASE storage_type
                			     WHEN 'placement' THEN g_days1p
                                             WHEN 'warehouse' THEN g_days1w
                         	            END)
                                         DAY) 
        FROM cargo_remains cr1 
        WHERE cr1.cargo_card_id = cc.id) AS time_1,
...
FROM...


Как только вместо CASE...END пишешь сразу g_days1p или g_days1w, выдает результат правильный в цифре.
...
Рейтинг: 0 / 0
SELECT внутри CASE не работает
    #39194986
svnvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Протупил!!! Там значение 'platform', а я 'placement' писал!
...
Рейтинг: 0 / 0
SELECT внутри CASE не работает
    #39195012
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svnvlad,

поэтому в case есть секция otherwise, в которой можно возвращать "oh shi....", чтобы сразу увидеть подобные ошибки.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT внутри CASE не работает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]