diff --git a/addons/hr_holidays/report/hr_leave_employee_type_report.py b/addons/hr_holidays/report/hr_leave_employee_type_report.py
index 085532b20d0492f38b93e08220b1dd3555f88cf6..027e8800a0771ab8832842e45860295748608f8e 100644
--- a/addons/hr_holidays/report/hr_leave_employee_type_report.py
+++ b/addons/hr_holidays/report/hr_leave_employee_type_report.py
@@ -51,7 +51,7 @@ class LeaveReport(models.Model):
                     allocation.employee_id as employee_id,
                     CASE
                         WHEN allocation.id = min_allocation_id.min_id
-                            THEN aggregate_allocation.number_of_days - aggregate_leave.number_of_days
+                            THEN aggregate_allocation.number_of_days - COALESCE(aggregate_leave.number_of_days, 0)
                             ELSE 0
                     END as number_of_days,
                     allocation.department_id as department_id,
@@ -69,16 +69,21 @@ class LeaveReport(models.Model):
                     FROM hr_leave_allocation GROUP BY employee_id, holiday_status_id) min_allocation_id
                 on (allocation.employee_id=min_allocation_id.employee_id and allocation.holiday_status_id=min_allocation_id.holiday_status_id)
 
-                /* Obtain the sum of allocations */
+                /* Obtain the sum of allocations (validated) */
                 LEFT JOIN
-                    (SELECT employee_id, holiday_status_id, sum(number_of_days) as number_of_days
-                    FROM hr_leave_allocation GROUP BY employee_id, holiday_status_id) aggregate_allocation
+                    (SELECT employee_id, holiday_status_id,
+                        sum(CASE WHEN state = 'validate' and active = True THEN number_of_days ELSE 0 END) as number_of_days
+                    FROM hr_leave_allocation
+                    GROUP BY employee_id, holiday_status_id) aggregate_allocation
                 on (allocation.employee_id=aggregate_allocation.employee_id and allocation.holiday_status_id=aggregate_allocation.holiday_status_id)
 
-                /* Obtain the sum of requested leaves (validated and confirmed) */
+                /* Obtain the sum of requested leaves (validated) */
                 LEFT JOIN
-                    (SELECT employee_id, holiday_status_id, sum(number_of_days) as number_of_days 
-                    FROM hr_leave GROUP BY employee_id, holiday_status_id) aggregate_leave
+                    (SELECT employee_id, holiday_status_id,
+                        sum(CASE WHEN state IN ('validate', 'validate1') THEN number_of_days ELSE 0 END) as number_of_days
+                    FROM hr_leave
+
+                    GROUP BY employee_id, holiday_status_id) aggregate_leave
                 on (allocation.employee_id=aggregate_leave.employee_id and allocation.holiday_status_id = aggregate_leave.holiday_status_id)
 
                 UNION ALL SELECT
@@ -94,7 +99,9 @@ class LeaveReport(models.Model):
                         WHEN request.state = 'confirm' THEN 'planned'
                     END as holiday_status,
                     request.employee_company_id as company_id
-                FROM hr_leave as request) leaves
+                    FROM hr_leave as request
+                    WHERE request.state IN ('confirm', 'validate', 'validate1')
+                ) leaves
             );
         """)