I have the following table category
:
id | desc_cat | parent_id
19 | Personal | (null)
20 | Credit Card | 19
21 | Academy | 19
22 | Home | (null)
23 | Water | 22
24 | Energy | 22
25 | Rent | 22
And I have a table containing entries with name cashbook
:
id | value | category_id | date
177 | 480.55 | 20 | 2016-05-01
178 | 100.00 | 24 | 2016-05-04
179 | 580.00 | 25 | 2016-05-05
180 | 80.00 | 21 | 2016-05-09
181 | 28.00 | 23 | 2016-05-11
I need to make an appointment in cashbook
and return the added values and
grouped by the parent category (which is like null
), for example:
Category-Father | Total
Personal | 560,55
Home | 708
Can you help me assemble this query ?? I took some sample queries Recursive but I'm very lost. My system is being made in PHP (Yii framework).
UPDATE 1
i did so:
select a.desc_category as segment, sum(b.value) as total
from category as a
inner join category as c on (a.parent_id = c.id_category and c.parent_id is not null)
inner join cashbook as b on (b.category_id = a.id_category)
INNER JOIN user as u ON b.user_id = u.id
WHERE u.id = 29
group by a.desc_category
AS WORK:
SELECT y.desc_category as segment, sum( x.value) as total FROM (
SELECT category.id_category, category.desc_category, category.parent_id , c.value AS value
FROM category
INNER JOIN cashbook AS c ON category.id_category = c.category_id )AS x
INNER JOIN category AS y ON x.parent_id = y.id_category
INNER JOIN user AS u ON y.user_id = u.id
WHERE u.id = 3
GROUP BY y.desc_category
Finally, how do I get ONLY THE MONTH and Current year?
I tried just did not work:
WHERE u.id = 3 AND MONTH(date) = 05 AND YEAR(date) = 2016