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