MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Criar view condicional em mysql

    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Criar view condicional em mysql Empty Criar view condicional em mysql

    Mensagem  lgdelai 4/8/2014, 03:20

    Olá a todos.

    Desde já agradeço a quem puder ajudar de qualquer forma.

    Preciso criar uma view que retorne em uma coluna específica, dados que podem vir
    de duas tabelas diferentes baseado em uma condição.

    Vejam:

    -----------------------------
    Tabela Anunciantes:
    anun_id
    anun_tipo
    anun_responsavel
    -----------------------------
    Tabela Contrato:
    cont_id
    cont_nome_negocio
    cont_anun_id
    -----------------------------
    Tabela Dados_pf
    dpf_id
    dpf_nome
    dpf_anun_id
    -----------------------------
    Tabela Dados_pj
    dpj_id
    dpj_razao_social
    dpf_anun_id
    -----------------------------


    View Anunciantes
    anun_responsavel
    cont_tipo
    dpf_nome OU dpj_razao_social

    Quero que na linha onde a o campo "cont_tipo" conter "pf" seja exibido o conteúdo "dpf_nome" da tabela "dados_pf"
    e onde conter "pj" seja exibido o conteúdo "dpj_razao_social" da coluna "dados_pj"

    -----------------------------

    Usei este código:

    SELECT anun_responsavel, anun_tipo, dpf_nome, dpj_razao_social, cont_nome_negocio
    FROM anunciantes, dados_pf, dados_pj, contratos
    WHERE anunciantes.anun_id=contratos.cont_anun_id
    AND anunciantes.anun_id=dados_pj.dpj_anun_id
    OR anunciantes.anun_id=dados_pf.dpf_anun_id
    ORDER BY anun_responsavel ASC

    Porém fiz um teste com tres registros, e não deu certo, aparecem muitos e com combinações erradas.
    alguém pode me ajudar?

    Obrigado.
    Anexos
    Criar view condicional em mysql AttachmentImagen Problema BD VIEW.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (193 Kb) Baixado 11 vez(es)
    lgdelai
    lgdelai
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 146
    Registrado : 31/03/2012

    Criar view condicional em mysql Empty Re: Criar view condicional em mysql

    Mensagem  lgdelai 4/8/2014, 07:00

    Bom a situação atual é a seguinte:

    Este código aqui quando eu uso ele sem ser na view, ele funciona perfeitamente.

    SELECT anun_responsavel, anun_tipo, IF(anun_tipo = 'pf', dpf_nome, dpj_razao_social) as anun_nome, cont_nome_negocio
    FROM anunciantes
    LEFT JOIN dados_pf ON dpf_anun_id = anun_id
    LEFT JOIN dados_pj ON dpj_anun_id = anun_id
    JOIN contratos ON cont_anun_id = anun_id
    ORDER BY anun_responsavel ASC


    Porém se eu criar a view com ele recebo o erro:
    #1054 - Unknown column 'dpf_nome' in 'order clause'

    DIz que a coluna não foi encontrada, Só que a coluna existe, pois como disse o código funciona.

    Agora vejam só, quando eu removo o IF e o código fica asim:

    SELECT anun_responsavel, anun_tipo, dpf_nome, dpj_razao_social, cont_nome_negocio
    FROM anunciantes
    LEFT JOIN dados_pf ON dpf_anun_id = anun_id
    LEFT JOIN dados_pj ON dpj_anun_id = anun_id
    JOIN contratos ON cont_anun_id = anun_id
    ORDER BY anun_responsavel ASC


    ele funciona na view, porém ele não junta as colunas dpf_nome e dpj_razao_social, ele exibe as duas colunas porém uma do lado da outra, e aque que não tem dados ficam nulas, gostaria delas unidas como consigo com o primeiro código, porém na view o código não funciona, não faz sentido isto.

      Data/hora atual: 19/3/2024, 08:26