› Fóruns › SQL e PL/SQL › Duplicar linhas › Duplicar linhas
[quote=”augustoca”:x9kua9sa][quote=”rman”:x9kua9sa]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;
[/quote]
Opa…é assim vai resolver, mas isso para 50k de registros sera que vale a pena? Será que não existe função analítica para isso?[/quote]
Creio que vai ficar rapido, executa o plano desta query e posta para nós analisarmos…