Array
(
)

self join com gridview

Bruno Franco
   - 27 mar 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

Netasper
   - 29 mar 2010

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

0
|
0

Bruno Franco
   - 31 mar 2010

Sim, funcionou.

Obrigado,

Bruno

0
|
0