Ошибка при добавлении в запрос SQL фильтра по периоду
У меня есть такой запрос в MySQL для полкчения информации по чекам
SELECT SUM(`order`.total) as totalWithoutDiscount,
SUM(IF(`order`.total_with_sale != 0, `order`.total_with_sale, `order`.total)) as totalWithDiscount,
(SUM(`order`.total) - SUM(IF(`order`.total_with_sale != 0, `order`.total_with_sale, `order`.total))) as discount,
`check`.payment_type as paymentType,
`check`.order_type as orderType,
`check`.id as checkId
FROM `check`,
`order`,
`posinfo`
WHERE `check`.id = :id
AND `order`.canseled = false
AND `check`.id = `order`.order_check_id
AND `check`.status = 7
AND `check`.id_pos in (`posinfo`.id);
Мне надо доработать этот запрос, чтобы получать статистику по всем чекам за период, заданный двумя датами from и to. Но когда я добавляю условия на даты, я получаю ошибку:
SELECT SUM(`order`.total) as totalWithoutDiscount,
SUM(IF(`order`.total_with_sale != 0, `order`.total_with_sale, `order`.total)) as totalWithDiscount,
(SUM(`order`.total) - SUM(IF(`order`.total_with_sale != 0, `order`.total_with_sale, `order`.total))) as discount,
`check`.payment_type as paymentType,
`check`.order_type as orderType,
`check`.id as checkId
FROM `check`,
`order`,
`posinfo`
WHERE `check`.time >= '2024-01-01 00:00:00'
AND `check`.time < '2024-01-31 23:59:59'
AND `order`.canseled = false
AND `check`.id = `order`.order_check_id
AND `check`.status = 7
AND `check`.id_pos in (`posinfo`.id);
Ошибка такая:
In aggregated query without GROUP BY, expression #4 of SELECT list contains nonaggregated column 'testdb.check.payment_type'; this is incompatible with sql_mode=only_full_group_by
Как исправить эту ошибку и доработать запрос, чтобы выводилась статистика за период? Почему эта ошибка произошла?