Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-03-2012
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Consulta Inner Join

hola, buenas tardes.. rebisando el funcionamiento de los inner joins.. me encontre con un enredo ....
la consulta es la siguiente:

select u.id,u.usr as usuario,
u.nom+' '+ u.ape_pat+' '+ u.ape_mat as 'Nombre Completo',
CASE u.estado
when 1 then 'Activo'
when 2 then 'Suspendido'
end as 'Estado',
p.descr,
tp.descr ,
ua.dir_cliente,
ua.ult_act
from fusu_usr_per up
inner join fusu_per p on up.id_per=p.id
inner join fusu_usr u on up.id_usr=u.id
inner join fusu_tper tp on p.id_tper=tp.id
inner join fusu_usr_acc ua on up.id_usr=ua.id_usr
where ua.id=(Select Top 1 id from fusu_usr_acc where id_usr=ua.id_usr order by ult_act desc)
order by u.id

conlo que se obtiene el siguiente resultado;
id usuario nombre completo estado descr descr dir_cliente ult_act
1,peri,ernesto glez,activo,permiso 2334,permiso acceso,123.123.23.1,23/09/2010
1,peri,ernesto glez,activo,permiso 344,permiso global,123.123.23.1,23/09/2010
1,peri,ernesto glez,activo,permiso 333,permiso acceso,123.123.23.1,23/09/2010
2,odin,carlos gomez,activo,permiso2334,permiso global,123.233.2.1,2/06/2012
2,odin,carlos gomez, activo,permiso333,permiso acceso,123.233.2.1,2/06/2012

y lo que sucede que el mismo usuario se repite tantos permisos tenga:

no habra una manera de que solo se vea una vez el usuario y solo se repitan los permisos

id usuario nombre completo estado descr descr dir_cliente ult_act
1,peri,ernesto glez,activo,permiso 2334,permiso acceso,123.123.23.1,23/09/2010
permiso 344,permiso global
permiso 333,permiso acceso
2,odin,carlos gomez,activo,permiso2334,permiso global,123.233.2.1,2/06/2012
permiso333,permiso acceso

Última edición por amerika111 fecha: 13-03-2012 a las 18:51:39.
Responder Con Cita
  #2  
Antiguo 13-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

me cuesta mucho ver la consulta o lo que que da como resultado, usa las etiquetas para formatear los distintos tipos de párrafos.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #3  
Antiguo 13-03-2012
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
Cita:
Empezado por ElDioni Ver Mensaje
Hola,

me cuesta mucho ver la consulta o lo que que da como resultado, usa las etiquetas para formatear los distintos tipos de párrafos.

Saludos.

Código SQL [-]
select u.id,u.usr as usuario,
       u.nom+' '+ u.ape_pat+' '+ u.ape_mat as 'Nombre Completo',
       CASE u.estado 
           when 1 then 'Activo' 
            when 2 then 'Suspendido' 
           end as 'Estado',
             p.descr,
       tp.descr ,
       ua.dir_cliente,
       ua.ult_act
 from fusu_usr_per up 
        inner join fusu_per p on up.id_per=p.id 
        inner join fusu_usr u on up.id_usr=u.id 
        inner join fusu_tper tp on p.id_tper=tp.id 
 inner join fusu_usr_acc ua on up.id_usr=ua.id_usr
 where ua.id=(Select Top 1 id from fusu_usr_acc where id_usr=ua.id_usr order by ult_act desc)
        order by u.id

teniendo como resultado:

imagen adjunta:

Última edición por amerika111 fecha: 12-04-2012 a las 19:12:20.
Responder Con Cita
  #4  
Antiguo 14-03-2012
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
creo que la imagen no se ve muy bien
adjunto txt..
Archivos Adjuntos
Tipo de Archivo: txt innerjoin.txt (930 Bytes, 17 visitas)

Última edición por amerika111 fecha: 14-03-2012 a las 00:21:26.
Responder Con Cita
  #5  
Antiguo 14-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola amerika111.

Si deseas que tus datos respeten la tabulación podés prepararlos en el bloc de notas, copiarlo y pegarlo entre las etiquetas [code] [/code] , quedando de esta forma:
Código:
...
2 admin  NULL  Suspendido  Permiso de Acceso         Permisos globales       147.15.54.36  2010-09-01 15:43:02.523
2 admin  NULL  Suspendido  Permiso de Administrador  Permisos globales       147.15.54.36  2010-09-01 15:43:02.523
...
Un saludo.

Edito: O también claro, adjuntar el .txt
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-03-2012 a las 00:33:17.
Responder Con Cita
  #6  
Antiguo 14-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

¿donde quieres mostrar los datos?, en un grid, en un report, en listbox..., lo digo para saber por donde tirar.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #7  
Antiguo 18-03-2012
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
aun no he encontrado una solucion, estos casos no se repiten frecuentemente???
Responder Con Cita
  #8  
Antiguo 20-03-2012
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Hola,

no se que componente es el gridview, ¿un DbGrid?, de todas formas, se me ocurre que tendrás que hacer dos consultas, una con los usuarios (solo los usuarios) y otra, que es la que ya tienes, con los permisos por usuario, una vez tengas esto lo tendrás que montar en dos DbGrids, uno con el listado de usuarios y otro en donde aparecerán los permisos de cada usuario conforme se vaya pinchando en el usuario correspondiente. No se si entiendes la idea que te propongo.

Saludos.
__________________
Confórmate con lo que tienes pero anhela lo que te falta.
Responder Con Cita
  #9  
Antiguo 21-03-2012
amerika111 amerika111 is offline
Miembro
 
Registrado: nov 2009
Posts: 168
Poder: 0
amerika111 cantidad desconocida en este momento
el gridview es un datagrid o dbgrid.. y si creo que si te entiendo lo que me comentas...

no habra manera de meterlo en algun procedimiento almacendo y mientras recorre la consulta del inner join vaya guardando como variable el usuario, y mientras siga siendo el mismo usuario despliege solo los permisos y si no desplegaria al usuario siguiente y asi.. detalle esta en que no se como construir el procedimiento..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta con inner join juanjo123 MySQL 3 11-02-2010 22:34:16
Consulta INNER JOIN NeWsP SQL 3 27-12-2009 14:01:46
Consulta Con INNER JOIN Rockin SQL 2 14-07-2008 08:30:42
Consulta sobre left / Right outer join ContraVeneno MS SQL Server 2 06-07-2006 15:18:12
EdatabaseError FIELD NOT FOUND en consulta JOIN syntetiko SQL 5 02-10-2004 00:35:31


La franja horaria es GMT +2. Ahora son las 02:38:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi