Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Y el informe que quieres obtener ¿qué muestra?, es decir, quieres mostrar el tiempo extra agrupados por departamentos, plantas y categorías en un periodo de fechas determinado, en ese orden orden, o ¿qué?

- Si unes EmpleadoReloj con TExtra, puedes obtener las horas extras (supongo que es eso) que ha realizado cada trabajador sabiendo la categoría de cada uno.
- Si unes TExtra con Departamento, obtendrás lo mismo pero sin importar la categoría de cada trabajador.

Como digo, el resultado de estos 2 informes, es el mismo, pero haciéndolo de una forma, obtienes más información que de la otra. Debes centrarte en lo que quieres obtener y ver en qué tablas está cada dato importante para tu informe, de ahí tienes que deducir la unión que debes realizar.

Por otro lado, si tienes acceso a producción, con un programa como Erwin (u otros en esta web hay algunos para informix), puedes obtener los metadatos de tu BBDD, es decir, las tablas, campos, relaciones, SP, etc, y crear el modelo Entidad-Relación, así verás las relaciones más claras.

Este tipo de programas hacen lo contrario, es decir, creas el modelo E-R y a partir de ahí crean la base de datos, pero normalmente tienen la opción de "Ingeniería Inversa": A partir de la Base de datos, crean el modelo E-R. Mirando con lupa las opciones que tiene, no modificará la BBDD para nada, y obtendrás el esquema.

Así puedes extraer el SP actual, ver como está hecho, y no caer en los mismos errores, o ver por qué es tan lento.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #2  
Antiguo 28-11-2007
Puberta Puberta is offline
Miembro
 
Registrado: oct 2007
Ubicación: Estado de México
Posts: 47
Poder: 0
Puberta Va por buen camino
Gracias a todos los que aportaron soluciones o recomendaciones. Lepe, he intentado lo que me recomendaste y funcionó....

No sé si le sirva a alguien pero, aún así ingreso el código final...el reporte debe mostrar el empleado, planta, departamento, categoria, fecha(s) que trabajo tiempo extra, las horas que trabajo y cual fue el rango de horas(hora_entrada y hora_salida), agrupado por departamento.

Mi problema era que no sabía relacionar la tabla empleado_reloj con las tablas categoria, departamento y empleado; esta última a su vez estaba relacionada con la tabla textra y textrareloj. Todo esto con el fin de reducir el tiempo al momento de ejecutarse el query.


Cita:
SELECT *
FROM Categoria c Inner Join
(departamento d Inner Join
(empleado_reloj er Inner Join
(empleado e Inner Join
(textrareloj l Inner Join textra t ON l.empleado = t.empleado)
ON e.empleado = l.empleado)
ON er.empleado = e.empleado)
ON d.departamento = er.departamento and d.planta = er.planta)
ON c.categoria = er.categoria and c.planta = er.planta
WHERE e.planta = pPlanta
and l.empleado BETWEEN pEmp1 and pEmp2
and er.departamento BETWEEN pDepto1 and pDepto2
and l.fecha BETWEEN pFecha1 and pFecha2
and e.nomina in (pNom1, pNom2, pNom3)
Este código funciona bien, aunque sinceramente no me ayudo de mucho pues el tiempo que tarda en generarse el reporte sigue casi igual...debe ser problema del servidor, porque no soy la única que tiene problemas al momento de trabajar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta de Query marceloalegre SQL 3 06-02-2006 16:38:37
Pregunta sobre Query silviodp Conexión con bases de datos 28 27-04-2004 23:17:57
Query sobre DataSource???? mguixot OOP 3 25-02-2004 21:26:59
Sobre Query pablo SQL 1 28-11-2003 05:07:14


La franja horaria es GMT +2. Ahora son las 21:13:01.


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