Saludos seguidores del manual SQL Server. A continuación los ejercicios de subconsultas utilizando la Base de Datos Hospital. Descarguen el script de la BD en el indice si aún no la tienen.
1. Mostrar el numero de empleado, el apellido y la fecha de alta del empleado mas antiguo de la empresa
SELECT EMP_NO,APELLIDO, FECHA_ALT FROM EMP WHERE FECHA_ALT = (SELECT MIN(FECHA_ALT) FROM EMP)
SELECT EMP_NO,APELLIDO, FECHA_ALT FROM EMP WHERE FECHA_ALT = (SELECT MAX(FECHA_ALT) FROM EMP)
SELECT APELLIDO, OFICIO FROM EMP WHERE OFICIO = (SELECT OFICIO FROM EMP WHERE APELLIDO = 'JIMENEZ')
SELECT APELLIDO, OFICIO, SALARIO, DEPT_NO FROM EMP WHERE SALARIO > (SELECT MAX (SALARIO) FROM EMP WHERE DEPT_NO = 30)
SELECT E.APELLIDO, E.OFICIO AS [CARGO EN EMPRESA], D.DNOMBRE AS [OFICINA] FROM EMP AS E INNER JOIN DEPT AS D ON E.DEPT_NO = D.DEPT_NO< UNION SELECT P.APELLIDO, P.FUNCION, S.NOMBRE FROM PLANTILLA AS P INNER JOIN SALA AS S ON P.HOSPITAL_COD = S.HOSPITAL_COD AND P.SALA_COD = S.SALA_COD UNION SELECT D.APELLIDO, D.ESPECIALIDAD, H.NOMBRE FROM DOCTOR AS D INNER JOIN HOSPITAL AS H ON D.HOSPITAL_COD = H.HOSPITAL_COD ORDER BY 3
SELECT APELLIDO, SALARIO FROM EMP UNION SELECT APELLIDO, SALARIO FROM PLANTILLA ORDER BY 2 DESC
SELECT APELLIDO, OFICIO FROM EMP WHERE DEPT_NO = 20 AND OFICIO IN (SELECT OFICIO FROM EMP WHERE DEPT_NO = (SELECT DEPT_NO FROM DEPT WHERE DNOMBRE = 'VENTAS')) ORDER BY 2
SELECT * FROM EMP WHERE SALARIO > (SELECT AVG (SALARIO) FROM EMP WHERE OFICIO = 'DIRECTOR') AND OFICIO <> 'PRESIDENTE'
SELECT APELLIDO, FUNCION, SALARIO, HOSPITAL_COD FROM PLANTILLA WHERE (FUNCION = 'ENFERMERO' OR FUNCION = 'ENFERMERA') AND HOSPITAL_COD = (SELECT HOSPITAL_COD FROM HOSPITAL WHERE NOMBRE = 'SAN CARLOS')
SELECT * FROM HOSPITAL WHERE HOSPITAL_COD IN (SELECT HOSPITAL_COD FROM DOCTOR WHERE ESPECIALIDAD = 'CARDIOLOGÍA')
SELECT APELLIDO, FUNCION, SALARIO * 12 AS [SALARIO ANUAL] FROM PLANTILLA WHERE HOSPITAL_COD IN (SELECT HOSPITAL_COD FROM HOSPITAL WHERE NOMBRE = 'PROVINCIAL' OR NOMBRE= 'GENERAL')
SELECT APELLIDO FROM ENFERMO WHERE FECHA_NAC < (SELECT FECHA_NAC FROM ENFERMO WHERE APELLIDO = 'MILLER B.')
Twittear
No me ejecuta la consulta 12
ResponderEliminar****************************************************
SELECT APELLIDO
FROM ENFERMO
WHERE FECHA_NAC < (SELECT FECHA_NAC FROM ENFERMO WHERE APELLIDO = 'Miller B.')
*****************************************************
Mens. 512, Nivel 16, Estado 1, Línea 1
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
Hola 2m3-Corp, gracias por la visita y el aporte de tu comentario!
EliminarSi estás utilizando la misma base de datos que está en el indice debería salir. Acabo de correr la consulta en mi editor SQL y los resultados salen correctamente.
Éxitos!! Hasta cualquier momento!
Debés tener más de un 'Miller B.' en la base, podes elegri solo uno con SELECT TOP 1 FECHA_NAC, o SELECT MAX(FECHA_NAC)
EliminarHola Cacho, gracias por la visita y el aporte de tu comentario!
EliminarLos mejores deseos!! Hasta cualquier instante!
Profe buenas noches podría subir porfavor de nuevo la base de datos, he entrado al link y me sale ESTA PAGINA NO ESTA DISPONIBLE...lo sube de nuevo porfa
ResponderEliminarHola Miguel Castillo Infantes, gracias por la visita y el aporte de tu comentario!
EliminarLa base de datos ya está subida!! Puedes descargarla si deseas!!
Los mejores deseos!! Hasta cualquier instante!
IMPORTANTE!! En la cláusula/consulta 5 hay un error, existe un "<" demás al lado de ON E.DEPT_NO = D.DEPT_NO, deben borrarlo y funcionará
ResponderEliminarAquí esta de forma Correcta:
SELECT E.APELLIDO, E.OFICIO AS [CARGO EN EMPRESA], D.DNOMBRE AS [OFICINA]
FROM EMP AS E
INNER JOIN DEPT AS D
ON E.DEPT_NO = D.DEPT_NO
UNION
SELECT P.APELLIDO, P.FUNCION, S.NOMBRE
FROM PLANTILLA AS P
INNER JOIN SALA AS S
ON P.HOSPITAL_COD = S.HOSPITAL_COD
AND P.SALA_COD = S.SALA_COD
UNION
SELECT D.APELLIDO, D.ESPECIALIDAD, H.NOMBRE
FROM DOCTOR AS D
INNER JOIN HOSPITAL AS H
ON D.HOSPITAL_COD = H.HOSPITAL_COD
ORDER BY 3
Hola AlexM, gracias por el aporte de tus conocimientos. Los mejores deseos para este 2021.
EliminarHola Alex me ayusarias con esta consulta? como crearian una consulta que te dice devolver los datos del/los repuestos mas utilizadosen lo que va del 2022 considerar aquellos que el costo actual sea superio a 20000
EliminarTengo la tabla Reparacion_Repuesto (Rep_Cod,RepAñio, Repuesto_Cod, cantidad, CostoUnitario) y Repuesto(Repuesto_Cod,RepuestoDesc, RepuestoCosto, Repuesto_Tipo)
Hola Anónimo, gracias por la visita y el aporte de tu consulta.
Eliminarcomo crearian una consulta que te dice devolver los datos del/los repuestos mas utilizadosen lo que va del 2022 considerar aquellos que el costo actual sea superio a 20000
ResponderEliminarTengo la tabla Reparacion_Repuesto (Rep_Cod,RepAñio, Repuesto_Cod, cantidad, CostoUnitario) y Repuesto(Repuesto_Cod,RepuestoDesc, RepuestoCosto, Repuesto_Tipo) ayudaaa
Hola Anónimo, gracias por la visita y el aporte de tu consulta.
EliminarBuenas. necesito realizar una consulta donde hay una partida que puede tener dos propietarios, es decir porque se le hace el pase de uno al otro, donde uno de los dos es siempre la misma entidad. por ejemplo partida xx tiene como propietario a raul y a entidad. es decir es una consulta de uno a muchos
ResponderEliminarotro ejemplo seria un cliente puede realizar muchas compras, donde detalle que compras hizo.
EliminarHola Anónimo, gracias por la visita y el aporte de tu consulta. Esperemos que algún usuario pueda apoyarte con la solución.
EliminarAlguien tiene los scripts, la pagina ya no esa disponible
ResponderEliminarHola Miguel Duran, gracias por la visita y avisar que había problemas con los enlaces. Ahora la descarga es directa sin avisos publicitarios. Si encuentras otro problema similar déjame un comentario y lo resolveré.
Eliminar