Como insertar datos en una tabla, tomando valores de otras tablas

Que tal tengo una base de datos para introducir unos estudios de laboratorio, tengo conocimientos básicos de Access y escasos de SQL.

Las tablas que pose la base de datos:

COMPONENTES_DE_ESTUDIOS

Datos pacientes

DERIVANTE

OBRA_SOCIAL

PROTOCOLO_VITALIS

RESULTADOS

SOLICITUD_ESTUDIOS

TIPO_ESTUDIO

Las relaciones son:

La lógica que quise imprir en la base es para un paciente puede haber varios numero de protocolos, ya que pueden ingresar varias veces en el año, para cada número de protocolo se pueden cargar varios estudios. Cada estudio tiene varios componentes o valores que se le deben ingresar, hasta aca no tengo problemas. El tema es que no logro hacer que cada vez que pido un estudio en el formulario se generen en la tabla RESULTADOS, el estudio con sus componentes, intente de hacerlo con una consulta de datos anexados y logro solo anexar el tipo de estudio pero no los componentes asociados.

Necesitaria ayuda para este ultimo punto ingresar el tipo de estudio con sus componentes en la tabla RESULTADOS.

1 respuesta

Respuesta
3

Tienes que hacer una consulta de tipo INSERT INTO SELECT.

Te explico el proceso paso a paso, a efectos didácticos:

1º/ Creas una consulta sobre todas las tablas con datos que quieras pasar a RESULTADOS, cogiendo SOLO los campos que vayas a pasar, es decir, los que aparezcan en RESULTADOS. Además, si los colocas ya en el orden en que van a ir en la tabla RESULTADOS, mejor, aunque no estrictamente necesario. Por ejemplo:

SELECT SOLICITUD_ESTUDIOS.Id_Prot_Vit, TIPO_ESTUDIOS.Id_Tipo_Estudios, COMPONENTES_DE_ESTUDIOS.Id_Componentes_Estud, SOLICITUD_ESTUDIOS.Id_Sol_Estudios
FROM (TIPO_ESTUDIOS INNER JOIN SOLICITUD_ESTUDIOS ON TIPO_ESTUDIOS.Id_Tipo_Estudios = SOLICITUD_ESTUDIOS.Estudio) INNER JOIN COMPONENTES_DE_ESTUDIOS ON TIPO_ESTUDIOS.Id_Tipo_Estudios = COMPONENTES_DE_ESTUDIOS.Estudio;

2º/ Compruebas que la consulta anterior te devuelve los resultados que deseas.

3º/ Ahora modificas esa consulta (o creas una nueva con la SQL)en Vista SQL, añadiendo al principio un INSERT INTO RESULTADOS ( Id_Prot_Vit, Id_Tipo_Estud, Id_Comp_Estud, Id_Sol_Estudios), con lo que te quedará una cosa así:

INSERT INTO RESULTADOS (Id_Prot_Vit, Id_Tipo_Estud, Id_Comp_Estud, Id_Sol_Estudios)
SELECT SOLICITUD_ESTUDIOS.Id_Prot_Vit, TIPO_ESTUDIOS.Id_Tipo_Estudios, COMPONENTES_DE_ESTUDIOS.Id_Componentes_Estud, SOLICITUD_ESTUDIOS.Id_Sol_Estudios
FROM (TIPO_ESTUDIOS INNER JOIN SOLICITUD_ESTUDIOS ON TIPO_ESTUDIOS.Id_Tipo_Estudios=SOLICITUD_ESTUDIOS.Estudio) INNER JOIN COMPONENTES_DE_ESTUDIOS ON TIPO_ESTUDIOS.Id_Tipo_Estudios=COMPONENTES_DE_ESTUDIOS.Estudio;

Es decir, en la parte del INSERT, pones los campos de la tabla Resultados a los que quieres pasar datos, y luego haces un Select con los campos de las tablas que tienen los campos que quieres pasar.

Un saludo.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas