Есть таблица "sale" в нем две столбца дат StartDate и FinishDate
сделал запрос чтобы получить остаток даты между двумя датами
select x.*, (TO_DAYS(x.MaxFinishDate)-TO_DAYS(CURDATE())) AS OstatokDate from(
select UserID, CURDATE() AS Today, MAX(FinishDate) as MaxFinishDate
from sale
group by UserID) as x
В маем случае запрос показывает -25 как сделать в запросе если число отрицательное показало 0?
по существу вопроса GREATEST() выбирает максимум из двух значений.
в остальном, для разницы в датах есть datediff, и curdate в подзапросе избыточен. что-то вроде этого:
SELECT UserID
, CURDATE() AS today
, MaxFinishDate as maxDate
, GREATEST(0, DATEDIFF(MaxFinishDate, CURDATE())) AS days
FROM (
SELECT UserID, MAX(FinishDate) as MaxFinishDate
FROM sale
GROUP BY UserID
) as x
Сборка персонального компьютера от Artline: умный выбор для современных пользователей