Добрый день,
Есть 3 связанных последовательно таблички:
categories (
id, name)
products (
id, category_id, name )
tarifs (
id, product_id, price, percent)
Необходимо , имея
id категории, найти наименьший тариф среди всех комнат, в случае если у тарифа есть процент в поле (
percent не
NULL), то необходимо выполнить преобразование значения. Сделал набросок, но на выходе имею массив почему - то. Дажк если ставлю
Distinct, то значение на выходе - не минимальный тариф из набора:
SELECT
DISTINCT
CASE
WHEN percent IS NOT NULL
THEN
MIN(price) +
(MIN(price) * percent / 100)
ELSE
MIN(price)
END
as min_price
FROM
tarifs
LEFT JOIN
products
ON
tarifs.product_id = products.id
LEFT JOIN
categories
ON
products.category_id = categories.id
WHERE
categories.id = :id
GROUP BY
tarifs.id