|
|
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Это часть другого запроса, и IF сверху решает, что в случае результата NULL надо выводить текущее время. Однако при любом раскладе все равно получается NULL, т.к. если запрос не находит строк, то просто не срабатывают IF-ы, а сразу выдает NULL, как то, что строки не найдены. Как сделать, чтобы в случае ненахождения строк выдавал результат, определяемый IF-ами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:34 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvladКак сделать, чтобы в случае ненахождения строк выдавал результат, определяемый IF-ами? Так в результирующем наборе же нет записей... в чём тебе возвращать этот самый не-NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:43 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvlad, а что за объект cr ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:44 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
А если надо получить скаляр, то тупо Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:46 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
AkinasvnvladКак сделать, чтобы в случае ненахождения строк выдавал результат, определяемый IF-ами? Так в результирующем наборе же нет записей... в чём тебе возвращать этот самый не-NULL? Этот подзапрос возвращает время окончания фрагмента времени. Если строк нет, значит еще не прописано последнее время последнего фрагмента, и нужно вернуть текущее время. Задача - в случае отсутствия строк запроса вернуть текущее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:47 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
AkinaА если надо получить скаляр, то тупо Код: sql 1. Я пытался запихать подзапрос внутрь другого выражения, выдает ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:51 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvladЗадача - в случае отсутствия строк запроса вернуть текущее время.сделайте через MIN() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 10:53 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvlad, а что за объект cr ? cargo_remains внешнего запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:03 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvladЗадача - в случае отсутствия строк запроса вернуть текущее время.сделайте через MIN() Не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:04 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
AkinaА если надо получить скаляр, то тупо Код: sql 1. Ошибки не выдало, но теперь показывает 0000-00-00. А там же еще одно внутренне условие - IF(условие, NULL, CURTIME()). Его как обработать? В общем смысл такой: /* Следующее время уменьшения груза. Если NULL и остался груз, то текущее время. */ /* Если NULL и нет груза, то NULL */ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:08 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
Вся логика того, что ты тут рассказываешь, свидетельствует о том, что подзапрос тебе нахрен не нужен. Избавься от него, введи получение требуемого значения в текст основного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:15 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvladmiksoftпропущено... сделайте через MIN() Не понял. Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:28 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
AkinaВся логика того, что ты тут рассказываешь, свидетельствует о том, что подзапрос тебе нахрен не нужен. Избавься от него, введи получение требуемого значения в текст основного запроса. Каким это образом интересно, если в одном запросе надо получить два значения - текущую строку таблицы и следующую? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:30 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvladв одном запросе надо получить два значения - текущую строку таблицы и следующую Используй две копии таблицы в основном запросе. Ты их всё равно две используешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:32 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvladпропущено... Не понял. Код: sql 1. 2. 3. 4. Да, можно. Но что в моем варианте, что здесь аномалия какая-то происходит. В случае отсутствия строк запроса выдает не текущее время, а 0000-00-00 00:00:00. Если MIN(cr2.remains_time) меняю на MIN(cr2.id), то выдает текущее время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:36 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoft Код: sql 1. Для отладки выведите MIN(cr2.remains_time) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:39 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftmiksoft Код: sql 1. Для отладки выведите MIN(cr2.remains_time) и MIN(cr2.remains_time), и MIN(cr2.id) выдают NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:47 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvlad, А если так: Код: sql 1. (ну то есть написать дату, которой гарантированно нет в таблице.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:50 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvlad, А если так: Код: sql 1. (ну то есть написать дату, которой гарантированно нет в таблице.) Тогда выдает '2017-01-01 01:01:01' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:52 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoft, Почитал доку IFNULL, что-то она мне не нравится. На всякий случай попробуйте так: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:55 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
Akinasvnvladв одном запросе надо получить два значения - текущую строку таблицы и следующую Используй две копии таблицы в основном запросе. Ты их всё равно две используешь. И как связать первую с текущим значением, а вторую со следующим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:56 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
svnvlad, О, разглядел, у вас CURTIME, а нужно CURDATE. Дата же какая-то тоже должна быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 11:57 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftmiksoft, Почитал доку IFNULL, что-то она мне не нравится. На всякий случай попробуйте так: Код: sql 1. 2. 3. 4. (скобка лишняя после END) Но то же самое выдает. 0000-00-00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 12:00 |
|
||
|
Запрос всегда выдает NULL
|
|||
|---|---|---|---|
|
#18+
miksoftsvnvlad, О, разглядел, у вас CURTIME, а нужно CURDATE. Дата же какая-то тоже должна быть? Спасибо! А я думал CURTIME выдает и дату, и время. Да, дата тоже должна быть. А как тогда? CURDATE() + CURTIME()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.03.2016, 12:02 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=108&tid=1832057]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 344ms |

| 0 / 0 |
