Thursday 15 April 2010

oracle - SQL Query summing columns -



oracle - SQL Query summing columns -

im new sql using book larn have tables

create table mov ( codigo number(5), tipo char(1), monto number(7, 2)); insert mov values (1,'i',5000.00); insert mov values (2,'i',6000.00); insert mov values (3,'i',7000.00); insert mov values (4,'i',8000.00); insert mov values (5,'i',9000.00); insert mov values (6,'i',9500.00); insert mov values (7,'i',8500.00); insert mov values (8,'i',7500.00); insert mov values (9,'i',6500.00); insert mov values (10,'i',5500.00); insert mov values (1,'i',5650.00); insert mov values (2,'i',6650.00); insert mov values (3,'i',7650.00); insert mov values (4,'i',8650.00); insert mov values (5,'i',9650.00); insert mov values (6,'i',10150.00); insert mov values (7,'i',9150.00); insert mov values (8,'i',8150.00); insert mov values (9,'i',7150.00); insert mov values (10,'i',6150.00); insert mov values (1,'i',6300.00); insert mov values (2,'i',7300.00); insert mov values (3,'i',8300.00); insert mov values (4,'i',9300.00); insert mov values (5,'i',10300.00); insert mov values (6,'i',10800.00); insert mov values (7,'i',9800.00); insert mov values (8,'i',8800.00); insert mov values (9,'i',7800.00); insert mov values (10,'i',6800.00); insert mov values (1,'i',6950.00); insert mov values (2,'i',7950.00); insert mov values (3,'i',8950.00); insert mov values (4,'i',9950.00); insert mov values (5,'i',10950.00); insert mov values (6,'i',11450.00); insert mov values (7,'i',10450.00); insert mov values (8,'i',9450.00); insert mov values (9,'i',8450.00); insert mov values (10,'i',7450.00); insert mov values (1,'i',7600.00); insert mov values (2,'i',8600.00); insert mov values (3,'i',9600.00); insert mov values (4,'i',10600.00); insert mov values (5,'i',11600.00); insert mov values (6,'i',12100.00); insert mov values (7,'i',11100.00); insert mov values (8,'i',10100.00); insert mov values (9,'i',9100.00); insert mov values (10,'i',8100.00); insert mov values (1,'d',3800.00); insert mov values (2,'d',4300.00); insert mov values (3,'d',4800.00); insert mov values (4,'d',5300.00); insert mov values (5,'d',5800.00); insert mov values (6,'d',6050.00); insert mov values (7,'d',5550.00); insert mov values (8,'d',5050.00); insert mov values (9,'d',4550.00); insert mov values (10,'d',4050.00); insert mov values (1,'d',1900.00); insert mov values (2,'d',2150.00); insert mov values (3,'d',2400.00); insert mov values (4,'d',2650.00); insert mov values (5,'d',2900.00); insert mov values (6,'d',3025.00); insert mov values (7,'d',2775.00); insert mov values (8,'d',2525.00); insert mov values (9,'d',2275.00); insert mov values (10,'d',2025.00); insert mov values (1,'d',950.00); insert mov values (2,'d',1075.00); insert mov values (3,'d',1200.00); insert mov values (4,'d',1325.00); insert mov values (5,'d',1450.00); insert mov values (6,'d',1512.50); insert mov values (7,'d',1387.50); insert mov values (8,'d',1262.50); insert mov values (9,'d',1137.50); insert mov values (10,'d',1012.50); insert mov values (1,'i',2600.00); insert mov values (2,'i',2725.00); insert mov values (3,'i',2850.00); insert mov values (4,'i',2975.00); insert mov values (5,'i',3100.00); insert mov values (6,'i',3162.50); insert mov values (7,'i',3037.50); insert mov values (8,'i',2912.50); insert mov values (9,'i',2787.50); insert mov values (10,'i',2662.50); insert mov values (1,'d',650.00); insert mov values (2,'d',681.25); insert mov values (3,'d',712.50); insert mov values (4,'d',743.75); insert mov values (5,'d',775.00); insert mov values (6,'d',790.63); insert mov values (7,'d',759.38); insert mov values (8,'d',728.13); insert mov values (9,'d',696.88); insert mov values (10,'d',475.25); create table emple ( codigo number(5), nombre char(40)); insert emple values (1,'pedro perez mora'); insert emple values (2,'maria brenes ortiz'); insert emple values (3,'carlos quesada bonilla'); insert emple values (4,'luisa soto abarca'); insert emple values (5,'olman badilla cortes'); insert emple values (6,'ana camacho diaz'); insert emple values (7,'alvaro duarte espinoza'); insert emple values (8,'hazel elizondo gamboa'); insert emple values (9,'hugo garita jimenez'); insert emple values (10,'lidieth jara echandi'); insert emple values (11,'jose mora quiros'); insert emple values (12,'roy pazos rodriguez');

the end result should this:

what have simple select statement

select e.codigo, e.nombre mov e;

how can create query have result intended in image thanks

a simple left bring together grouping should it;

select e.codigo, e.nombre, sum(case when m.tipo = 'i' m.monto else 0 end) ingresos, sum(case when m.tipo = 'd' m.monto else 0 end) deducciones, sum(case when m.tipo = 'i' m.monto else 0 end) - sum(case when m.tipo = 'd' m.monto else 0 end) neto emple e left bring together mov m on e.codigo = m.codigo grouping e.codigo, e.nombre order e.codigo, e.nombre

the left bring together lets collect corresponding "mov"s each "emple", , grouping allows sum them each codigo/nombre combination.

an sqlfiddle test with.

oracle oracle11g sum

No comments:

Post a Comment