MySQL - использовать значения GROUP_CONCAT в расчете? - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь создать запрос, который даст мне ценность продукта после того, как несколько скидок были сняты с его первоначальной стоимости.

Это упрощенная версия того, что у меня до сих пор:

SELECT
p.price
GROUP_CONCAT(d.amount) AS discounts
FROM products p
LEFT OUTER JOIN discounts d
ON d.product_id = p.id
GROUP BY p.id

Где discount.amount - десятичное значение.

Редактировать: например, если было две соответствующие скидки со значениями 10 и 15 соответственно и начальная цена продукта составляла 50, расчет вернул бы 25

Есть ли в запросе, что я могу выполнить вычисление, которое я хочу?

Любой совет будет принят с благодарностью.

Спасибо.

1 Ответ

1 голос
/ 27 мая 2011

Существует метод SUM ():

SELECT p.price,
       p.price - COALESCE(SUM(d.amount), 0) as discounted_price,
       GROUP_CONCAT(d.amount) AS discounts
FROM products p
LEFT OUTER JOIN discounts d
ON d.product_id = p.id
GROUP BY p.id
...