self join com gridview
27/03/2010
0
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
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
Curtir tópico
+ 0
Responder
Posts
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
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
Clique aqui para fazer login e interagir na Comunidade :)