FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cita:
En cuanto a mi problema, las cosas son así la base de datos esta en Informix. Hay un sistema que maneja la nomina(en delphi 7), y lo que esta mal es cuando se genera el reporte de Tiempo Extra, aclaro que no tengo la base de datos, ni todos los nombres de las columnas de las tablas, solo unos cuantos, tampoco tengo los indices ni las relaciones entre estas(si es que existen)....me dieron un código, el cual solo manda los parametros y ejecuta un SP; este a su vez realiza una consulta y el resultado lo guarda en una tabla temporal, en la cual esta basado el reporte. Espero me explique, son cuatro tablas (empleado, Textra, EmpleadoReloj, TextraReloj), las cuales tienen un campo en comun 'id_empleado'; la tabla EmpleadoReloj esta relacionado con otras dos tablas, con la tabla Categoría se relaciona mediante los campos (planta y categoria) y con la tabla Departamento (planta y departamento)...no tengo idea de como se deben de realizar las uniones con Inner Join porque segun tengo entendido el uso de Inner Join agiliza el tiempo y de eso es lo que se trata, de que sea muchísimo más rápido la generación del reporte. Tampoco puedo ver si el query funciona porque el SP original esta en el servidor de producción y no lo van a quitar para poner el mio hasta que no se lo muestre a mi jefe y el quede convencido...mi jefe es un poco pesado, pero aún así creo que me toco el mejor pues es muy tranquilo y no me grita o regaña a cada rato como los demás, pero tampoco quiero ir a preguntarle a cada momento y sobretodo quiero presentarle las cosas lo mejor posible, pues voy iniciando a labolar y no quiero que se desesperé tan pronto de mi, ojala me entiendan. Nota: Todos los campos son de tipo entero y smallint, todavía no me meto con fechas |
#2
|
||||
|
||||
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. |
#3
|
|||
|
|||
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:
|
|
|
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 |
|