self join com gridview

27/03/2010

Estou retornado a seguinte consulta em uma gridview:

SELECT u1.nome_razaosocial, u1.email, u1.tipo_tel, u1.telefone, t.descricao,
             t.id_trab_voluntario, u1.usu_cpf_cnpj, u2.usu_cpf_cnpj
   FROM usuario u1 inner join trabalho t
       on u1.usu_cpf_cnpj = t.usu_cpf_cnpj
       inner join  usuario u2
       on u2.usu_cpf_cnpj = t.bene_cpf_cnpj
       order by u1.nome_razaosocial


Nesse caso fiz um self join onde o campo usu_cpf_cnpj é o mesmo. Porém retorna resultados diferentes com o alias u1 e u2. O problema é que o gridview não consegue diferenciar campos iguais de tabelas diferentes ou campos iguais vindos de um self join. No meu caso ele está interpretando que usu_cpf_cnpj é o referente a u1.usu_cpf_cnpj. Tentei indicar na grid o valor "u1.usu_cpf_cnpj" no DataField mas ele dá um erro dizendo que não reconhece o campo. Já tentei renomear o campo desta maneira: .. u1.usu_cpf_cnpj as 'Associado' .. mas ele tb não reconhece. Alguem saberia como fazer isto?

abs,

Bruno

Bruno Franco

Respostas

29/03/2010

Netasper

Bruno, Usando alias tem que funionar, funciona para mim:   SELECT u1.nome_razaosocial, u1.email, u1.tipo_tel, u1.telefone, t.descricao,
             t.id_trab_voluntario, u1.usu_cpf_cnpj as cpf1, u2.usu_cpf_cnpj as cpf2 
   FROM usuario u1 inner join trabalho t
       on u1.usu_cpf_cnpj = t.usu_cpf_cnpj
       inner join  usuario u2
       on u2.usu_cpf_cnpj = t.bene_cpf_cnpj
       order by u1.nome_razaosocial
[]s
Responder Citar

31/03/2010

Bruno Franco

Sim, funcionou.


Obrigado,

Bruno
Responder Citar