powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Минимум больше нуля
5 сообщений из 30, страница 2 из 2
Минимум больше нуля
    #38572096
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так... я кажись наконец понял... вот нехрен было начальный запрос писАть. Тебе надо из всей твоей совокупности по всем двум полям выбрать одно значение, чтобы больше нуля, и самое меньшее из них. Так? тогда

Код: sql
1.
2.
3.
4.
SELECT MIN(r.i2) FROM ... WHERE ... AND r.i2>0
UNION
SELECT MIN(g.i2) FROM ... WHERE ... AND g.i2>0
ORDER BY 1 ASC LIMIT 1
...
Рейтинг: 0 / 0
Минимум больше нуля
    #38572123
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда вот такой звэрЪ :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT LEAST(IFNULL(NULLIF(a,0),b),(IFNULL(NULLIF(b,0),a))) ID
FROM (
   SELECT MIN(IF(r.i2>0,r.i2,NULL))a,MIN(IF(g.i2>0,g.i2,NULL))b
   FROM records_db s
   JOIN records_db g on g.base = 124 and g.g2 = s.id
   JOIN records_db c on c.base = 125 and c.g1 = g.id
   JOIN records_db r on r.base = 126 and r.g1 = c.id
   WHERE s.base = 123 and s.id = АЙДИ
   )q

Ну, или if(least(a,b)=0,greast(a,b),least(a,b)) , что больше понравится)
...
Рейтинг: 0 / 0
Минимум больше нуля
    #38572124
Include.nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaТак... я кажись наконец понял... вот нехрен было начальный запрос писАть. Тебе надо из всей твоей совокупности по всем двум полям выбрать одно значение, чтобы больше нуля, и самое меньшее из них. Так? тогда

Код: sql
1.
2.
3.
4.
SELECT MIN(r.i2) FROM ... WHERE ... AND r.i2>0
UNION
SELECT MIN(g.i2) FROM ... WHERE ... AND g.i2>0
ORDER BY 1 ASC LIMIT 1


Аллилуйя!

Запрос вида:
Код: sql
1.
2.
3.
SELECT MIN(r.i2) FROM ... WHERE ... AND r.i2>0
UNION
SELECT MIN(g.i2) FROM ... WHERE ... AND g.i2>0


Вернет наименьшие значения больше нуля для r.i2 и g.i2.
В итоге у меня получается:
Код: sql
1.
2.
NULL
599



Только если делать так:
Код: sql
1.
2.
...
ORDER BY 1 ASC LIMIT 1


То выводится NULL, а должно быть 599. Осталось это победить и все.
...
Рейтинг: 0 / 0
Минимум больше нуля
    #38572127
Include.nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007Ну тогда вот такой звэрЪ :)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT LEAST(IFNULL(NULLIF(a,0),b),(IFNULL(NULLIF(b,0),a))) ID
FROM (
   SELECT MIN(IF(r.i2>0,r.i2,NULL))a,MIN(IF(g.i2>0,g.i2,NULL))b
   FROM records_db s
   JOIN records_db g on g.base = 124 and g.g2 = s.id
   JOIN records_db c on c.base = 125 and c.g1 = g.id
   JOIN records_db r on r.base = 126 and r.g1 = c.id
   WHERE s.base = 123 and s.id = АЙДИ
   )q

Ну, или if(least(a,b)=0,greast(a,b),least(a,b)) , что больше понравится)
Благодарю, ваш вариант подошел!
Всем спасибо за помощь!
...
Рейтинг: 0 / 0
Минимум больше нуля
    #38871838
Starshoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Include.nvТолько если делать так:
Код: sql
1.
2.
...
ORDER BY 1 ASC LIMIT 1


То выводится NULL, а должно быть 599. Осталось это победить и все.

ORDER BY NOT NULL ASC LIMIT 1
...
Рейтинг: 0 / 0
5 сообщений из 30, страница 2 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Минимум больше нуля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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