Додать все значение использую where и ввести - MySQL
Формулировка задачи:
Есть таблица db_hours, в ней есть много записей со следующими полями
id, name, hours, month
Понятно, что
hours, month
- типа int Как суммировать все hours где WHERE `name`='Ura' AND `month`='1' и вывести одним числомРешение задачи: «Додать все значение использую where и ввести»
textual
Листинг программы
SELECT
COALESCE(SUM(CASE WHEN `reason` IN ('1','2','3') THEN `hours` END), 0) AS `prihod`,
COALESCE(SUM(CASE WHEN `reason` IN ('4','5','6') THEN `hours` END), 0) AS `rashod`
FROM `db_hours` WHERE `name`='Ura' AND `month`='1'
Объяснение кода листинга программы
В данном коде выполняется запрос к базе данных db_hours с условием, что имя name равно 'Ura' и месяц month равен '1'.
Он возвращает две суммы:
prihod— это сумма часов, которые были потрачены на причины, соответствующие значениям '1', '2' и '3' в столбцеreason. Если ни одна из этих причин не была использована, то возвращается 0.rashod— это сумма часов, которые были потрачены на причины, соответствующие значениям '4', '5' и '6' в столбцеreason. Если ни одна из этих причин не была использована, то возвращается 0. Код:- SELECT
- COALESCE(SUM(CASE WHEN
reasonIN ('1','2','3') THENhoursEND), 0) ASprihod, - COALESCE(SUM(CASE WHEN
reasonIN ('4','5','6') THENhoursEND), 0) ASrashod - FROM
db_hoursWHEREname='Ura' ANDmonth='1'