Привет у меня есть база данных, и я пытаюсь сделать счет, где я могу несколько значений и сделать, чтобы подсчитать их.
----------------------
|id | name|parts|date|
---------------------
|1 |abc | 2 |2016|
---------------------
|1 |bcd | 3 |2017|
---------------------
|1 |cde | -5 |2018|
----------------------
И мне нужно:
-----------
|id |count|
-----------
|1 | 6 |
-----------
Как я сказал, если у меня есть minu (-), то 1 не имеет значения, если -3 или -5 является эгальным с 1; 2 + 3 + 1 = 6;
Попробуйте этот запрос:
SELECT id, SUM(IF(parts < 0, 1, parts)) AS 'count'
FROM table
GROUP BY id
Прочитав это несколько раз, я думаю, что это то, чего вы хотите достичь.
SELECT
id,
SUM(IF(parts < 0, 1, parts)) AS count
FROM
products
GROUP BY
id
SELECT 'id',
SUM(CASE WHEN ('parts' < 0) THEN 1 ELSE 'parts' END) AS Count
FROM 'TableName'
GROUP BY 'id'
Функция SUM()
возвращает общую сумму числового столбца.
Функция CASE
позволяет вам оценивать условия и возвращать значение, когда выполняется первое условие (например, инструкция IF-THEN-ELSE
)