Pular para o conteúdo

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

#99580
rman
Participante

    [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…