Reputation: 551
I don't know how to get this result (see image) if I have this information:
CREATE TABLE TABLE_1
(
FECHA DATE NOT NULL
,LUGAR VARCHAR2(5) NOT NULL
,TIPO_USO VARCHAR2(2) NOT NULL
,NUM_PERSONAS NUMBER
,FORM_PAGO VARCHAR2(255) NOT NULL
);
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/01','RR/MM/DD'),'H1','U1','3','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/01','RR/MM/DD'),'H1','U3','2','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/01','RR/MM/DD'),'H1','U4','4','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/02','RR/MM/DD'),'H3','U2','1','ticket');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/02','RR/MM/DD'),'H4','U5','2','ticket');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/02','RR/MM/DD'),'H5','U1','3','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/02','RR/MM/DD'),'H5','U3','2','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/02','RR/MM/DD'),'H5','U4','4','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/03','RR/MM/DD'),'H10','U1','3','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/03','RR/MM/DD'),'H10','U2','1','tarjeta');
Insert into TABLE_1 (FECHA,LUGAR,TIPO_USO,NUM_PERSONAS,FORM_PAGO) values (to_date('19/04/03','RR/MM/DD'),'H12','U3','2','ticket');
CREATE SEQUENCE "SEQ_REPORTE" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 2206 NOCACHE ORDER NOCYCLE NOKEEP NOSCALE GLOBAL ;
CREATE TABLE TABLE_2 (
ID NUMBER DEFAULT SEQ_REPORTE.nextval NOT NULL
,FECHA DATE NOT NULL
,LUGAR VARCHAR2(5) NOT NULL
,U1 NUMBER
,U2 NUMBER
,U3 NUMBER
,U4 NUMBER
,U5 NUMBER
,FORM_PAGO VARCHAR2(255) NOT NULL
);
i want to get this : (see image)
Can somebody help me?
Thanks so much
Regards
Upvotes: 0
Views: 44
Reputation: 37483
You can try using conditional aggregation
select FECHA,LUGAR,
max(case when TIPO_USO='U1' then NUM_PERSONAS end) as U1,
max(case when TIPO_USO='U2' then NUM_PERSONAS end) as U2,
max(case when TIPO_USO='U3' then NUM_PERSONAS end) as U3,
max(case when TIPO_USO='U4' then NUM_PERSONAS end) as U4,
max(case when TIPO_USO='U5' then NUM_PERSONAS end) as U5,FORM_PAGO
from tablename
group by FECHA,LUGAR,FORM_PAGO
Upvotes: 3