Usar función SUM con CASE – ORACLE
Trabajando en un reporte mensual, debía separar por criterio el total generado en una sumatoria. Normalmente para separarlo se utiliza la agrupación, ya tenemos la primera agrupación que sería por mes y la segunda seria por el criterio, como por ejemplo sumar el sueldo mensual de varios empleados pero diferenciando por el sueldo y bonos que tengan. Vamos a crear una tabla de pagos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
CREATE TABLE pagos ( id number PRIMARY KEY NOT NULL, id_empleado number NOT NULL, fecha date NOT NULL, tipo_pago VARCHAR2(10) NOT NULL, monto number(18,2) NOT NULL ); INSERT INTO pagos VALUES (1, 047, TO_DATE('2022-01-01','YYYY-MM-DD'), 'sueldo', 100.00); INSERT INTO pagos VALUES (2, 047, TO_DATE('2022-01-01','YYYY-MM-DD'), 'bono', 10.00); INSERT INTO pagos VALUES (3, 056, TO_DATE('2022-01-15','YYYY-MM-DD'), 'sueldo', 150.00); INSERT INTO pagos VALUES (4, 056, TO_DATE('2022-01-15','YYYY-MM-DD'), 'bono', 20.00); INSERT INTO pagos VALUES (5, 112, TO_DATE('2022-01-30','YYYY-MM-DD'), 'sueldo', 200.00); INSERT INTO pagos VALUES (6, 112, TO_DATE('2022-01-30','YYYY-MM-DD'), 'bono', 25.00); |
id id_empleado fecha tipo_pago monto 1 47 01/01/2022 sueldo 100 2 47 01/01/2022 bono 10 3 56 15/01/2022 sueldo 150 4 56 15/01/2022 bono 20 5 112 30/01/2022 sueldo 200 6 112 30/01/2022 bono […]