Как (MySQL) умножить значения ячеек в группе на? - PullRequest
0 голосов
/ 24 февраля 2020

Мне нужно, чтобы все значения обрабатывались с помощью MULTIPLY () вместо SUM () в запросе, подобном этому (упрощенно):

SELECT aav.id, COUNT(al.id_product) AS num_products, MULTIPLY(al.prop) AS mul_prop
FROM a_table a 
JOIN v_table aav ON a.id = aav.id_article AND a.fecha > '2020-01-13 11:28:54'
JOIN l_table al ON al.id_article = aav.id_article
JOIN l_table al2 ON al.id_article= al2.id_article AND al2.id_product = 113288
WHERE aav.id_attrib IN (SELECT a.id FROM attrib a WHERE a.key= 'my_key') 
GROUP BY id_article HAVING num_products > 2

Я ищу облегченное решение, без создания представления или временной таблицы, я просто ищу функцию типа MULTIPLY () в OpenOffice.

Моя цель - иметь отрицательные, положительные и нулевые ячейки, когда существуют некоторые продукты с проп = 0, некоторые отрицательные опорные продукты, или все положительные опорные продукты, это для визуальных целей. Есть идеи? Я вижу, MySQL не имеет функции MULTIPLY (): /

1 Ответ

1 голос
/ 24 февраля 2020

Мне нужно проверить, существует ли отрицательный (и не нулевой), нулевой или все положительные свойства

SELECT aav.id, 
       COUNT(al.id_product) AS num_products, 
       SUM(al.prop < 0) as count_negative, 
       SUM(al.prop = 0) as count_zeros,
       SUM(al.prop > 0) as count_positive
       -- the rest are NULL
FROM a_table a 
JOIN v_table aav ON a.id = aav.id_article AND a.fecha > '2020-01-13 11:28:54'
JOIN l_table al ON al.id_article = aav.id_article
JOIN l_table al2 ON al.id_article= al2.id_article AND al2.id_product = 113288
WHERE aav.id_attrib IN (SELECT a.id 
                        FROM attrib a 
                        WHERE a.key= 'my_key') 
GROUP BY id_article 
HAVING num_products > 2
...