Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Pregunta de relacion de tablas

Hola. Tengo 2 tablas que contienen información, por ejemplo la 1 que contiene los medicamentos que necesita un paciente (en términos de hospital les llaman contrareferencias) y la 2 que contiene los medicamentos que le fueron entregados en Farmacia. Las tablas 1 y 2 estan relacionadas por el paciente, médico y medicamento.

El problema, y tengo este problema todo el tiempo, es que tengo una tabla que contienen los datos de los pacientes, pero si yo la relaciono con la Tabla 1, en la tabla 2 no me sale por ejemplo el nombre del paciente. Lo mismo si relaciono la Tabla de Pacientes con la tabla 2, no me salen algunos nombres de pacientes que estan en la tabla 1. No puedo relacionar individualmente la tabla 1 y 2 con la de pacientes porq es una referencia circular

Las Tablas 1 y 2 no necesariamente contienen los mismos pacientes, pero la tabla de pacientes si los tiene todos.

Existe alguna forma de utilizar una tabla de Pacientes que alimente de datos a las 2 tablas sin perder datos (Porque si yo la relaciono con una solo tabla, esa tabla filtra información y esa info perdida no llega a la siguiente tabla)

Gracias

6 Replies
walterlh
Creator II
Creator II

Hola, si puedes  mostrar los campos de las tablas sería mucho mas sencillo (O las relaciones de las tablas). Pero con tan pocas tablas no deberías tener ese problema. Asumo que estas usando códigos como Key para relacionar las tablas.

Not applicable
Author

Si estoy entendiendo tu pregunta correctamente la solución sería concatenar las dos tablas y después si unirla a la dimensión de pacientes, ejemplo:

Tabla1:

Load

     IdPaciente,

     IdMedico,

     IdMedicamento,

     Cantidad_Medicada as Cantidad,

     ...

     ...

     ...

     0     as Tipo_Trans, // 0 = Generación de la orden

From [INSERTE AQUI SU FUENTE];

concatenate

Tabla2:

Load

     IdPaciente,

     IdMedico,

     IdMedicamento,

     Cantidad_Recibida as Cantidad,

     ...

     ...

     ...

     1     as Tipo_Trans, // 1 = Ejecución de la orden

From [INSERTE AQUI SU FUENTE];

Paciente:

Load

      IdPaciente,

     ...    

     ...

     ...

From [DIM DE PACIENTE];

Not applicable
Author

Si el problema es que para relacionar las tablas 1 y 2 estoy usando llaves, entonces si no coincide completamente la llave ya no coincide nada. Como podras ver seleccione un numero de paciente (Afiliacion) y en

la tabla de arriba tengo una clave que no se encuentra en la tabla de abajo. Por eso no me relaciona nada. Abajo tengo la relación de mis tablas. El problema es que todas están relacionadas a la tabla de recetas, y la tabla de recetas no ofrece los mismos campos que la de contrareferencias y a veces presentan claves distintas, pacientes distintos, etc. Entiendo que solo va a mostrarme coincidencias, pero lo que no quiero es agregar mis 4 tablas de datos tambien a la tabla de contrareferencias para poder completarle los datos, lo ideal sería que las 2 tablas principales pudieran jalar los datos que necesiten de las otras 4 tablas.

Gracias

muestra.pngrelacion de tablas.png

Not applicable
Author

Seria una tabla muy grande pero talvez podria solucionar el problema de usar muchas tablas y podría talvez aligerar un poco la memoria que jala qv, dejame intentarlo, gracias por la sugerencia

Not applicable
Author

es imposible concatenarla porque no existe un solo campo que me relacione las 2 tablas, uso una llave de 3 campos, medico, paciente y clave de medicamento. Arriba publique una respuesta a otro comentario y podras ver el problema alli. Entiendo que QV t va a mostrar las coincidencias, pero lo que quisiera es no tener q agregar todos los datos d nuevo a la otra tabla, sino usar las que ya tengo para completar los datos de mis 2 tablas.

Gracias

ecolomer
Master II
Master II

Podrías relacionar la tabla de pacientes con una de las tablas y con un resident y otro nombre relacionar la nueva tabla de pacientes (sólo con codigo y nombre para aligerar) con la otra tabla.

Asi ambas tendrán el dato del paciente