Pular para o conteúdo

Fóruns SQL e PL/SQL Select with internal join Select with internal join

#105728
Gustavo S Coelho
Participante

    The most intresting is that the follow query works fine but when i replace it for the column TB.ICMS i get the issue.
    I tried to put a group by with the two columns i need and didn’t work as well.


    --INNER JOIN INTERNO USANDO JOIN
    SELECT

    TB.CD_EXERCICIO,
    TB.TESTE
    --TB.ICMS

    FROM (
    SELECT
    TB2.cd_exercicio CD_EXERCICIO,
    ('FUNCIONA') TESTE
    /*
    SUM(
    CASE
    WHEN nr1.cd_natureza_receita >= 1113020000
    AND nr1.cd_natureza_receita <= 1113029999
    THEN DECODE(1,1, rmsub.vl_realizado, rmsub.valr_arrecadado)
    ELSE NULL
    END ) ICMS
    */

    FROM receita r
    INNER JOIN receita_mes rmsub
    ON rmsub.id_receita = r.id_receita
    INNER JOIN elaboracao_receita ersub
    ON (r.id_elaboracao_receita = ersub.id_elaboracao_receita)
    INNER JOIN natureza_receita nr1
    ON (r.id_natureza_receita = nr1.id_natureza_receita
    AND nr1.cd_exercicio = ersub.cd_exercicio)

    INNER JOIN (
    SELECT
    elaboracao_receita.cd_exercicio,
    receita.id_receita,
    receita.id_elaboracao_receita,
    receita.id_natureza_receita
    FROM receita
    JOIN receita_mes
    ON (receita_mes.id_receita = receita.id_receita)
    JOIN elaboracao_receita
    ON (elaboracao_receita.id_elaboracao_receita = receita.id_elaboracao_receita)
    JOIN natureza_receita
    ON (natureza_receita.id_natureza_receita = receita.id_natureza_receita AND natureza_receita.cd_exercicio = elaboracao_receita.cd_exercicio)
    ) TB2 ON ( TB2.cd_exercicio = nr1.cd_exercicio
    AND TB2.cd_exercicio = ersub.cd_exercicio
    AND TB2.id_receita = r.id_receita
    AND TB2.id_receita = rmsub.id_receita
    AND TB2.id_elaboracao_receita = r.id_elaboracao_receita
    AND TB2.id_elaboracao_receita = ersub.id_elaboracao_receita
    AND TB2.id_natureza_receita = r.id_natureza_receita
    AND TB2.id_natureza_receita = nr1.id_natureza_receita
    )
    ) TB
    WHERE 1 = 1
    AND TB.CD_EXERCICIO = 2013