› Fóruns › SQL e PL/SQL › Duplicar linhas › Duplicar linhas
10 de junho de 2011 às 12:59 am
#99574
Participante
Então você não quer mudar a forma que os registros estão armazenados (em 1 linha), você apenas apresenta los de forma diferente né (1 linha por imposto) ?
Segue uma solução usando “UNION ALL”
CREATE TABLE IMPOSTO (
ID NUMBER
,IMPOSTO5 NUMBER
,IMPOSTO10 NUMBER
);
INSERT INTO IMPOSTO(ID,IMPOSTO5,IMPOSTO10) VALUES(1,100,250);
INSERT INTO IMPOSTO(ID,IMPOSTO5,IMPOSTO10) VALUES(2,150,300);
INSERT INTO IMPOSTO(ID,IMPOSTO5,IMPOSTO10) VALUES(3,0,450);
INSERT INTO IMPOSTO(ID,IMPOSTO5,IMPOSTO10) VALUES(4,45,0);
COMMIT;
SELECT X.ID,X.IMPOSTO5,0 IMPOSTO10
FROM IMPOSTO X
WHERE X.IMPOSTO5 0
UNION ALL
SELECT Y.ID,0,Y.IMPOSTO10
FROM IMPOSTO Y
WHERE Y.IMPOSTO10 0
ORDER BY ID;