Está en la página 1de 5

BASE DE DATOS AVANZADA

LUIS IGNACIO MONCAYO FRANCO

CORPORACION UNIFICADA NACIONAL DE EDUCACION CUN

SINCELEJO (SUCRE)

13/03/2019
TALLER EN CLASES

Tomando como base el diseño del taller 4 se llena la información en las tablas

PACIENTES
DOCUMENTO NOMBRE APELLIDO ACTIVO REGIMEN
92548911 WILSON DAVID FLOREZ BARBOZA SI SUBSIDIADO
64700940 KATIA MARCEL RANGEL MANCHEGO SI CONTRIBUTIVO
1005684113 Julio ramon acevedo bohorquez SI CONTRIBUTIVO
1005552487 Ida Luz Fonseca Polanco SI CONTRIBUTIVO
1030700227 Samuel Jose Jaraba Solorzano NO SUBSIDIADO
1192779885 Luis fernando palacio lopez SI SUBSIDIADO
1005660759 Jhonatan yesid mendez perez NO CONTRIBUTIVO

MEDICOS

DOCUMENTO NOMBRE APELLIDO ESPECIALIDAD


1193223458 Andres felipe Velasquez Bertel MEDICO GENERAL
1010038421 Leidy Melissa Bedoya Diaz ODONTOLOGO
1129487869 Isamar Zabaleta Acosta PSICOLOGO
1005665537 Lisbany Dayana marquez parra MEDICO GENERAL
1104874019 Luis Ignacio Moncayo Franco PSICOLOGO

CITAS

CODIGO FECHA HORA VALOR ATENDIDA CODIGO CODIGO


PACIENTE MEDICO
1 18/02/2019 8:00:00 15000 SI 92548911 1193223458
2 18/02/2019 9:00:00 25000 SI 64700940 1010038421
3 18/02/2019 10:00:00 25000 NO 1005684113 1129487869
4 18/02/2019 11:00:00 15000 SI 1005552487 1005665537
5 18/02/2019 12:00:00 20000 NO 1030700227 1104874019
6 19/02/2019 8:00:00 SI SI 92548911 1010038421
7 19/02/2019 9:00:00 SI SI 64700940 1129487869
8 19/02/2019 10:00:00 SI SI 1030700227 1010038421
9 20/02/2019 8:00:00 SI SI 1005552487 1129487869
10 20/02/2019 8:00:00 SI SI 92548911 1005665537
CUESTIONARIO
1. Cuantas filas y columnas MEDICOS X CITAS.
R/ 50 filas, 11 columnas

2. Obtener el producto cartesiano de MEDICOS X CITAS.


R/ SELECT * FROM medicos, citas

3. Cuantas filas resultan y columnas resultas de realizar el producto cartesiano de PACIENTES


X CITAS
R/ 12 columnas y 70 filas

4. Cuantas filas resultan y columnas resultas de realizar el producto cartesiano de PACIENTES


X CITAS X MEDICOS
R/ 16 columnas y 350 filas

Realice las siguientes consultas

5. Todos los datos del paciente en mayúscula.


R/ SELECT documento, upper(nombre) as NOMBRE, upper(apellido) as APELLIDO,
upper(activo) as ACTIVO, upper(regimen) as REGIMEN FROM pacientes

6. Realice un informe: (los campos en mayúscula)


Documento Nombre Fecha de Hora de atendida
paciente paciente cita cita

R/ SELECT p.documento, upper(p.nombre) as Paciente, c.fecha, c.hora, c.atendida


FROM pacientes p, citas c WHERE p.documento = c.idpaciente

7. Realice un informe: (los campos en mayúscula)


Documento Nombre Fecha de Hora de atendida Nombre especialidad
paciente paciente cita cita medico

R/ SELECT p.documento, upper(p.nombre) as Paciente, c.fecha, c.hora, c.atendida,


upper(m.nombre) as Medico, upper(m.especialidad) FROM pacientes p, citas c, medicos m
WHERE p.documento = c.idpaciente AND m.documento = c.idmedico

8. Realice un informe: (los campos en mayúscula) para un médico especifico.


Documento Nombre Fecha de Hora de atendida Nombre especialidad
paciente paciente cita cita medico

R/ SELECT p.documento, upper(p.nombre) as Paciente, c.fecha, c.hora, c.atendida,


upper(m.nombre) as Medico, upper(m.especialidad) FROM pacientes p, citas c, medicos m
WHERE p.documento = c.idpaciente AND m.documento = c.idmedico AND m.documento
= 1129487869

9. Realice un informe asi: (los campos en mayúscula) en una fecha específica.


Documento Nombre Fecha de Hora de atendida Nombre especialidad
paciente paciente cita cita medico

R/ SELECT p.documento, upper(p.nombre) as Paciente, c.fecha, c.hora, c.atendida,


upper(m.nombre) as Medico, upper(m.especialidad) FROM pacientes p, citas c, medicos m
WHERE p.documento = c.idpaciente AND m.documento = c.idmedico AND c.fecha =
'20190214'

10. Los médicos que el nombre empiece por la letra L


R/ SELECT * FROM medicos WHERE nombre LIKE 'L%'

11. Todos los pacientes que el apellido termine en la letra o


R/ SELECT * FROM pacientes WHERE apellido LIKE '%O'

12. Todos los pacientes que el nombre contenga la letra i


R/ SELECT * FROM pacientes WHERE nombre LIKE '%i%'

13. El total pagado por cita en un día especifico


SELECT SUM(valor) AS total FROM citas WHERE fecha = '20190219'

14. El tiempo en días que le falta a una cita específica para cumplirse.
R/ SELECT DATEDIFF('20190227', CURRENT_DATE) as Dias FROM citas

15. Cuantas citas fueron atendidas por un médico especifico en un periodo especifico
R/ SELECT COUNT(*) FROM citas WHERE idmedico = 1129487869 AND fecha =
'20190218'

16. Los médicos que no fueron programados en citas en un periodo específico.


R/ SELECT * FROM medicos WHERE documento NOT IN(SELECT idmedico FROM citas
WHERE fecha>= '20190219' AND fecha <= '20190220')

17. Los médicos que no fueron programados en citas en un día específico.


R/SELECT * FROM medicos WHERE documento NOT IN(SELECT idmedico FROM citas
WHERE fecha>= '20190217' )

18. Un informe así para un paciente específico:


Documento paciente Nombre paciente Fecha cita valor cita

R/SELECT p.documento, p.nombre, c.fecha, c.valor FROM pacientes p, citas c


WHERE p.documento = c.idpaciente AND p.documento = 1030700227

19. Un informe así para un paciente:


Documento paciente Nombre paciente Total pagado

R/ SELECT p.documento, p.nombre, SUM(c.valor) as Total_Pagado FROM


pacientes p, citas c WHERE p.documento = c.idpaciente AND p.documento = 1030700227
20. Un informe así para todos los pacientes:
Documento paciente Nombre paciente Total pagado

R/ SELECT p.documento, p.nombre, SUM(c.valor) as Total_Pagado FROM pacientes p,


citas c WHERE p.documento = c.idpaciente AND c.atendida = "si" GROUP BY p.documento

21. Un informe así para un medico

Documento medico Nombre medico Numero de citas

R/ SELECT m.documento, m.nombre, COUNT(*) as Numero_citas FROM medicos m, citas


c WHERE m.documento = c.idmedico and m.documento = 1010038421

22. Un informe así para todos los médicos


Documento medico Nombre medico Numero de citas

R/ SELECT m.documento, m.nombre, COUNT(*) as Numero_citas FROM medicos m, citas


c WHERE m.documento = c.idmedico GROUP BY m.documento

23. Un informe así para todas las especialidades


Especialidad Numero de citas Total pagado

R/ SELECT m.especialidad, COUNT(*) as Numero_citas, SUM(c.valor) as


Total_Pagado FROM medicos m, citas c WHERE m.documento = c.idmedico GROUP BY
m.especialidad

24. Un informe así para todas las fechas


fecha Numero de citas Promedio pagado

R/ SELECT fecha, COUNT(*) as numero_citas, AVG(valor) FROM citas GROUP BY fecha

También podría gustarte