Consulta combinada varias tablas

Donde se calcule la cantidad de días que transcurren entre un proceso y otro.
Tengo una tabla llamada "Diagnostico" con los campos Id_Empresa, Fecha_Diagnostico.
Luego tengo otra tabla llamada "Diseño" con el campo Fecha_Diseño, pero aquí no tengo el Id_Empresa porque en este campo pueden ir varias empresas y no solo una, entonces le puse "Nombre_Unidad"
También tengo la tabla "Empresa" con Id_Empresa, Nombre_Empresa, esta está relacionada a Diagnóstico pero no a Diseño (por el problema de que necesito poner en un mismo campo varias empresas)
Necesito hacer una consulta donde me indique la cantidad de días transcurridos entre la "fecha_diagnostico" y "fecha_diseño", pero también necesito que me aparezca a cuál empresa pertenece, cuando agrego la tabla de Empresa a la consulta, el resultado me aparece vacío (me imagino porque no tiene asociado el Id_Empresa a Diseño), como puedo resolver esta consulta.

2 Respuestas

Respuesta
1
¿Es la misma pregunta?
Si es la misma pregunta, muchas gracias
Puedes finalizar una
Respuesta
1
Creo que lo que tienes que resolver no es "esta consulta", sino la relación entre las tablas (De dónde entiendo que viene todo tu problema). No explicas muy bien, o yo al menos no lo he entendido, que campos tienes en cada tabla. Pero el hecho de que "en este campo pueden ir varias empresas y no solo una...", se resuelve relacionando correctamente las tablas. A partir de eso, la mayoría de las cosas salen por si solas.
Un saludo
Hola, necesito hacer una consulta donde se calcule la cantidad de días que transcurren entre un proceso y otro.
Tengo una tabla llamada "Diagnostico" con los campos Id_Empresa, Fecha_Diagnostico.
Luego tengo otra tabla llamada "Diseño" con el campo Fecha_Diseño, pero aquí no tengo el Id_Empresa porque en este campo pueden ir varias empresas y no solo una, entonces le puse "Nombre_Unidad"
También tengo la tabla "Empresa" con Id_Empresa, Nombre_Empresa, esta está relacionada a Diagnóstico pero no a Diseño (por el problema de que necesito poner en un mismo campo varias empresas)
Necesito hacer una consulta donde me indique la cantidad de días transcurridos entre la "fecha_diagnostico" y "fecha_diseño", pero también necesito que me aparezca a cuál empresa pertenece, cuando agrego la tabla de Empresa a la consulta, el resultado me aparece vacío (me imagino porque no tiene asociado el Id_Empresa a Diseño), como puedo resolver esta consulta.
Muchas gracias
Gracias por su respuesta.
Esa es la parte que quisiera hacer para relacionar bien las tablas, le voy a detallar estas.
Tengo una tabla de Diseños con los siguientes campos: cod_diseño, nombre_diseño, fecha_diseño, Detalle, cod_empresa.   
Tabla Empresas: cod_empresa, nombre_empresa, datos_empresa.  
Tabla Diagnóstico: cod_diagnostico, nombre_diagnostico, fecha_diagnostico, cod_empresa
El diagnóstico está relacionado con la tabla empresas (mediante el cod_empresa), pero el problema con los diseños es que yo podría utilizar para un mismo diseño hasta 8 empresas, aquí es donde tengo el problema. Entonces lo que hice fue crear un campo en la tabla "Diseños" que dice "empresas" y aquí pongo los nombres de todas las empresas. Por esto es que no tengo asociada la tabla "Diseños" con la "Empresas", pero ahora necesito sacar el tiempo transcurrido entre la "fecha_diagnostico" y la "fecha_diseño", pero necesito poner los nombres de la empresas, aquí es donde no me está dando la consulta.
Se que tengo un error de relación, pero esa es mi pregunta, cómo puedo relacionar "Diseño" - "empresas" tomando en cuenta que en el cod_empresa de "Diseños" necesito poner más de una empresa (hasta 10 máximo).
Muchas gracias
Como primera cuestión no es prudente llamar con el mismo nombre a campos de distintas tablas (luego en consultas o en código no da más que problemas) Lo mejor es cada uno tenga un nombre que lo diferencie de los demás.
Si la tabla "Diseños" es la que puede tener varios registros relacionados en la tabla "Empresas" y contando que cada registro de "diseño" es único (es algo que no comentas), yo lo haría más o menos así:
Tabla Diseños: "id_diseño" ; "cod_diseño"; "nombre_diseño"; "fecha_diseño"; "detalle"
Tabla Empresas: "id_empresa"; "relacion_diseño"; "nombre_empresa" ; "datos_empresa"
Luego en relaciones, relacionaría el campo "id_diseño" con el campo "relación_diseño", en una relación de "uno a varios" (Ten en cuenta que el "id_diseño" sea autonumérico y el campo "relación_diseño" sea número.
Con esto tendrás relacionadas cuantas empresas sean necesarias a cada diseño, (que yo sepa no tiene limites)
No te comento de la tabla "diagnosticos" por que no me queda claro que tipo de relación debe tener. (Uno a uno, uno a varios, varios a uno)
Un saludo.
Hola, gracias por su respuesta.
Creo que como me recomiendas es como tengo en este momento los campos de las tablas, tal vez yo no me explique bien, te comento lo siguiente: (con ejemplo)
Yo tengo en la tabla "Empresas" las empresas "A","B" y "C" con todos sus datos.
Luego me paso a la tabla "Diseños", aquí empiezo a ingresar información, tengo el diseño código =100 llamado "X".
Este diseño "X" se necesita utilizar en las empresas "A", "B" y "C" (desde la tabla diseño no desde empresa) aquí es cuando tengo que asignar más de una empresa para este único diseño, es cuando tengo el problema (o no se cómo resolverlo).
¿Cómo a través de la tabla "Diseños" puedo seleccionar 3 códigos diferentes de empresa asignados a un diagnóstico?
Lo de la tabla Diagnósticos, está asociada un solo diagnóstico para una única empresa, aquí la relación que existe con diseños es la fecha.
Porque es donde necesito a través de una consulta, cuánto tiempo transcurre entre la fecha_diagnóstico y la fecha_diseño para la empresa "A".
No se si ya me expliqué, mil gracias
Pues... lo dicho. No veo ningún cambio entre lo que interprete y lo que me explicas. Si relacionas debidamente las tablas, lo demás prácticamente sale por si sólo, ... o no te estoy entendiendo en absoluto.
Con el planteamiento que te hice anteriormente, y o escojo un "diseño" y le puedo ir "colgando" cuantas "empresas" necesite". Por lo que si luego los "diagnosticos" sólo corresponde uno a cada "diseño", sacar el dato que pides es "pan comido".
Un saludo.
Hola experto
Hice lo que primero me mencionaste, cambié las relaciones y ahorita ya hice las debidas relaciones, la segunda parte fue para aclararte mejor el tema.
Pero aún no me sale la consulta, me sale en blanco
¿Puedo enviarte las relaciones de mi tabla algún correo?, mi correo es
[email protected]
Muchas gracias
Ya hice la relación de Diseños a Empresas pero me dice que ya existe una relación y no es cierto, al querer crear una me permite la relación (como me la recomendaste de id_diseño a relacion_diseño) pero me pone una tabla que dice "diseño1" o al querer modificar la relación me indica en el tipo de relación "indeterminado"
Igual hice la relación entre id_diagnostico y relacion_diagnostico y id_evaluacion relación evaluación
Pero en todas me indica que ya existe una relación. Lo que yo veo es que tal vez me da el error porque hay una relación con el campo id_empresa hacia las tablas (diseño, diagnostico, evaluación) porque necesito asociarlas.
De momento ya corregí los campos, pero la asociación está mal porque ya existe.
Mil gracias
Mi dirección de correo:
[email protected]
Un saludo.
Mil gracias, ya te envíe el correo...
He recibido el correo y le he echado un ligero vistazo. (He de ser sincero, hoy no tengo tiempo para mucho más).
En principio lo que he visto a simple vista es que el campo de la tabla diseño no guarda el id de la empresa, ¿eso es así o es porque me has enviado sólo algún dato de ejemplo?. De todas maneras, mañana lo miro más detenidamente, introduciendo yo datos ficticios. Te lo comento porque si es así, ese es el problema. Yo le he puesto al azar el id empresa (de las que existen en el ejemplo que me has mandado) y creo que te da el dato correctamente.
Pero bueno, lo dicho, mañana le echo una mirada más profunda.
Un saludo.
Hola experto
Si efectivamente, como le había comentado al inicio.
El problema es que en el campo id_empresa de la tabla diseño, necesito poner más de una empresa, es decir para el diseño 01 puede tener la empresa 4,8,11 y 21 pero como solo la podía poner una vez el código de empresa (o hasta ahí llegaron mis conocimientos) ahí fue donde se me dio el error. Luego al cambiarlo a la forma que me recomendaste es cuando me da el error.
Pero el mismo problema lo tengo con "diagnostico, solicitud asistencia y evaluación"
Pero en estos si tengo asignado el id_empresa en cada tabla, pero me da el error de relación tipo "Indeterminado"
Muchas gracias por tu ayuda, saludos
En cuanto a tu primer problema: Tienes relacionada la tabla Empresa con la tabla Diseño con "uno a varios" es decir, una empresa puede tener varios diseños. Y eso no es lo que quieres. Debes crear la relación al revés de Diseño a Empresa de "uno a varios", para ello crea en la tabla Empresa un campo, por ejemplo "relacion" y tendrás solucionado el problema. Como he visto que tienes muchas relaciones, lo mejor es que hagas una copia de la BD, hagas los cambios y compruebes que todo lo demás sigue funcionando como deseas.
En cuanto a lo segundo, no he encontrado "diagnostico, solicitud asistencia y evaluación" por ningún lado, por lo que no te puedo comentar, pero puede ser algo parecido a lo anterior.
Un saludo.
Hola experto
Si he intentado crear la relación al revés pero me dice relación: Indeterminado.
Esta es la parte que no se que debo, hacer.
Eso te ocurre porque el campo "Cod_diseño" no es una clave principal. Cambialo. Para un buen funcionamiento toda tabla debe tener un campo "id" clave principal que lo identifique como único. Por cierto, no es buena idea llamar a campos de tablas diferentes de la misma manera ( por ejemplo "cod_empresa"), aunque los llames igual no son el mismo campo, en cada tabla es "uno" y sólo sirve para "liar" a Access y al que intenta programar.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas