Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegohamaz1

Problema com case e subselect

Recommended Posts

Galera tenho uma query com alguns joins e preciso fazer um case when, estou tentando isso

CASE WHEN emp.cadastro = 1
THEN 'M'::text ELSE 'F'::text
CASE WHEN pesq.tipo = 'M'::text
THEN (select matriz from tblim mei where (mei.nu_cnpj = emp.emp_cnpj) limit 1)
WHEN 1
THEN 'M'::text
ELSE 'F'::text
END AS tipo_do_estabelecimento,

Porem da erro no segundo case, outra duvida é quanto ao subselect ele esta me dando mais de um registro nessa subselect como posso fazer para essa subselect se orientar de acordo com a select principal?

 

preciso fazer esse case em duas tabelas distintas

 

CASO emp.cadastro da tabela empresa for 1 seto M senao F

E CASO pesq.tipo da tebela pesquisa for M preciso fazer essa subselect pra buscar informação da tblim, tentei colocar a tblim na consultaprincipal mas ela junta registros , o que eu nao quero.

 

alguem pode me dar uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

PostGree 9.5

 

Client pgAdmin versao 1.8.4

 

 

agora deu certo só que nao sei como fazer o subselect nessa condição

     CASE pesq.alt_tipreg
            -- GOSTARIA DE FAZER UM SUBSELECT AQUI EM OUTRA TABELA DE ACORDO CO O CNPJ DA QUERY PRINCIPAL o CAMPO VAI VIM 1 ou 2 se for 1 setar 'M' se for 2 'F'
     --select in_estabelecimento_matriz from tblmei where (mei.nu_cnpj = emp.emp_cnpj)limit 1
            WHEN 'M'::bpchar THEN 'M'::text
            ELSE 
            CASE emp.emp_atocadastro
                WHEN 1 THEN 'M'::text
                WHEN 2 THEN 'F'::text
                ELSE ''::text
            END
        END AS empresa_tipoestabelecimento,

Coloquei uma explicação na query Motta , vê se vc consegue entender o que preciso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez a sintaxe não suporte subselect neste casos , teria de ver a documentação para tal, uma solução poderia ser uma função de usuário , mas não conheço o Postgree a ponto de saber como implementar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.