Lançado Adianti Framework 7.6!
Clique aqui para saber mais
LEFT JOIN NO ADIANTI Bom dia! Tenho a seguinte situação: 1 - Tenho uma tabela meses (Janeiro a Dezembro) onde o número do mês é o id. 2 - Tenho uma segunda tabela distribuição onde gravo o id da tabela pessoa e o id do mês em que a pessoa recebeu. Eu quero popular uma datagrid onde eu listo o nome das pessoas e todos os meses (Janeiro a Dezembro) para os meses onde não consta o id na tabela distri...
PC
LEFT JOIN NO ADIANTI  
Bom dia!

Tenho a seguinte situação:

1 - Tenho uma tabela meses (Janeiro a Dezembro) onde o número do mês é o id.

2 - Tenho uma segunda tabela distribuição onde gravo o id da tabela pessoa e o id do mês em que a pessoa recebeu.

Eu quero popular uma datagrid onde eu listo o nome das pessoas e todos os meses (Janeiro a Dezembro) para os meses onde não consta o id na tabela distribuição quero preencher a linha com não e vice versa com sim para os que receberam.

No MYSQL criei o select abaixo:

SELECT * FROM meses m LEFT JOIN distribuicao d ON d.MesId = m.id ORDER BY m.id


O resultado esperado é o da imagem em anexo, onde o que vier null seria não e o preenchido seria sim.

Alguém tem uma sugestão de como montar isso no Adianti?

Grato pela ajuda!

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (6)


PC

Melhorei a consulta
SELECT M.id, M.Nome, P.Nome, D.MesId, D.MembroId FROM meses m LEFT JOIN distribuicao d ON d.MesId = m.id LEFT JOIN membro p on p.MembroId = d.MembroId ORDER BY m.id
LG

Para poder utilizar no framework, recomendo criar uma view, assim poderá criar uma Model. Qual a sua necessidade?
FC
PC

Amigos muito obrigado pela ajuda!

Consegui trazer as informações agora tenho outra questão:

Minha datagrid tem as colunas Nome, janeiro, fevereiro, ... Dezembro
Quero quando o mês for janeiro coloca as informações na coluna janeiro assim por diante, tem como dizer para a datagrid em qual coluna colocar a informação?

Obrigado!
AF

Boa noite Paulo.

Esse um script de exemplo no sqlite onde faz o que você quer, tabela de referência cruzada.

select coluna_agrupadora,
Count(case when mes = 'janeiro' then coluna_contadora end) as 'Janeiro',
Count(case when mes = 'fevereiro' then coluna_contadora end) as 'Fevereiro',
........
from xxxx
group by coluna_agrupadora
order by coluna_agrupadora;

Busque tabela de referência cruzadas no mysql.

www.scriptcase.com.br/forum/index.php?topic=10281.0

Espero ter ajudado.

Atenciosamente,
Ailton Furtado
PC

Amigos consegui obrigado pela presteza e ajuda, o resultado ficou conforme abaixo:
Nome Janeiro Fevereiro Marco Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro Carlos Eduardo Pontes Junior 0 0 0 0 0 0 0 1 1 0 0 0 Douglas Tadeu Ignácio 0 0 0 0 0 0 0 1 1 0 0 0 Ivone 0 0 0 0 0 0 0 1 1 1 0 0 Julio César Marido da Rejiane 0 0 0 0 0 0 0 1 0 1 0 0 Mãe da Bispa 0 0 0 0 0 0 0 1 1 1 0 0 Mãe do Pastor Junior 0 0 0 0 0 0 0 1 1 1 0 0 Senhor Antonio 0 0 0 0 0 0 0 0 1 0 0 0 Thiago Ponce 0 0 0 0 0 0 0 1 1 0 0 0 </cod>