Есть запрос в базу данных для получения списка заказов.
SELECT
`orders`.*,
SUM(`pto`.`amount` * `pto`.`price`) + `orders`.`delivery_cost` - `orders`.`discount` as `full_sum`
FROM
`orders`
LEFT JOIN `product_to_order` AS `pto` ON(`pto`.`order_id` = `orders`.`id`)
WHERE
`orders`.`type` = 'sending'
GROUP BY
`orders`.`id`
HAVING `full_sum` LIKE '%140%'
ORDER BY `orders`.`id` DESC
LIMIT 0, 25
orders.delivery_cost
- Цена доставки
orders.discount
- Скидка
pto.price
- Цена товара
pto.amount
- Количество товара
Раньше не приходилось фильтровать заказы по сумме, а теперь нужна такая опция и я прибег к использованию HAVING
.
Данные нужны для постраничной навигации(пагинатора).
Вопрос как получить количество всех записей, которые подходят под данный фильтр?
select count(*) as ocnt from (SELECT orders.id as oid,
SUM(pto.amount * pto.price) + orders.delivery_cost -
orders.discount as full_sum
FROM orders
LEFT JOIN product_to_order AS pto ON(pto.order_id = orders.id)
WHERE orders.type = 'sending'
GROUP BY oid
HAVING full_sum LIKE '%140%') as tab1
АЛСО, я конечно не знаю как там что у вас, но LIKE предполагается использовать со строковыми данными - для всех типов чисел гораздо удобнее (и главное - быстрее) установить обычные диапазоны с использованием <,<=,>,>=,=, IN : HAVING full_sum > 100.0 AND full_sum <= 160.0 - например
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Изменить X FORWARDED FOR в dotnetbrowser?Или изменить локальный IP в c# form
При скачивании файла с интернета он маркируется для защиты таким образом:
Приветствую! В старой версии unity эта ошибка игнорировалась, в новом не дает с ней запускать игру: Step Offset must be less or equal to <scaled Height> + <scaled Radius>...