Pular para o conteúdo

Fóruns SQL e PL/SQL Duplicar linhas Duplicar linhas

#99574
rman
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;