2013/8/28, Felipe Pamboukian <felipe.pambouk...@ibope.com>:
> Bom dia,
>
> Gostaria de fazer um case com inner join mais não estou conseguindo, alguém
> posso de dar uma ajuda?
>
>
> select mte.idrepesportesmt, esp.codesporte, esp.esporte,
>     sb.codsubesporte, sb.subesporte, mte.iduser, u.login, mt.tipomidia,
>     rd.emissora, mte.coletado, mt.dia, mt.mes, mt.ano, rd.codrede,
> mt.rotulo,
>     case when mt.tipomidia = 'VHS' then pr.praca else 'NACIONAL - NET' end
> as praca,
>     case when mte.coletado = '0' then 'Não Coletar' else 'Coletar' end as
> coletadoo,
>     case when mte.estado = '0' then 'Pendente'
>          when mte.estado = '1' then 'Concluído'
>          when mte.estado = '2' then 'Em andamento' end as estado,
>     case when mte.estado_user = '0' then 'Pendente'
>          when mte.estado_user = '1' then 'Concluído'
>          when mte.estado_user = '2' then 'Em andamento' end as
> estado_usuario
> from repesportesmt mte
>      inner join cm_esporte esp on esp.codesporte = mte.codesporte
>      inner join reportagemmt mt on mt.idreportagemmt = mte.idreportagemmt
>      inner join jvtv_redes rd on rd.codrede = mt.codrede
>      inner join cm_subesporte sb on sb.codsubesporte = mte.codsubesporte
>      inner join usuarios u on u.iduser = mte.iduser
>      case when mt.tipomidia = 'VHS' then
>       inner join cli_midia mi on mi.rotulo = mt.rotulo
>         inner join jvtv_pracas pr on pr.codpraca = mi.codpraca_grav
>      else
>       inner join cli_dia d on d.rotulodia = mt.rotulo
>    inner join jvtv_pracas pr on pr.codpraca = d.codpraca
>      end
> where mt.ano = :ano and mt.mes = :mes and mte.estado = :estado
> order by rd.emissora, pr.praca, mt.rotulo, mt.dia, esp.esporte,
> sb.subesporte
>


O CASE não serve para você escolher qual tabela utilizará para fazer o JOIN.

Pesquise por execução dinâmica de comandos:
http://www.postgresql.org/docs/current/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

Osvaldo
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a