Додать все значение использую 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
reason
IN ('1','2','3') THENhours
END), 0) ASprihod
, - COALESCE(SUM(CASE WHEN
reason
IN ('4','5','6') THENhours
END), 0) ASrashod
- FROM
db_hours
WHEREname
='Ura' ANDmonth
='1'
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д