Download INSERT INTO Trabajador (IdTrabajador,Nombre
Document related concepts
no text concepts found
Transcript
PRÁCTICA 5 Problema La empresa contratista “INGENIERÍA Y ACABADOS S.A de C.V”, requiere que se elabore una base de datos con la información que más adelante se presenta. TRABAJADOR IdTrabajador 230 576 234 76 234 542 646 233 Nombre Tarifa Alquezada María Elena Marquez Patricia Vazquez Eduardo Gutiérrez Lucia Torres Miguel Espinoza Isabel Sánchez Raquel García Hector Yonic 56.5 23.2 78.9 120 34.4 23.2 23.2 100 Oficio Plomero Electricista Electricista Arquitecto Carpintero Albañil Albañil Arquitecto IdSupervisor 76 234 76 NivelCalidad Categoría 76 233 233 120 EDIFICIO IdEdificio 111 210 312 435 460 515 Dirección Rosendo Marquez 16 4 Pte. 2354 Calle Albatros 2 Hidalgo 1232 Callejon Emiliano Z. <Pendiente> Tipo Oficina Oficina Oficina Comercio Almacen Residencia 4 3 2 1 3 3 ASIGNACIÓN Trabajador Edificio 230 576 234 76 234 234 76 FechaInicio 111 210 312 435 111 210 312 13/02/2009 03/10/2009 30/11/2009 02/01/2010 13/02/2009 03/10/2009 30/11/2009 Dias 14 13 12 11 14 13 12 1 1 2 1 3 2 234 542 646 233 76 234 76 233 233 233 233 233 435 435 460 515 460 460 515 111 460 210 210 435 02/01/2010 02/01/2010 02/01/2010 01/12/2010 30/11/2009 15/01/2010 20/09/2009 17/10/2009 17/01/2010 11 14 13 12 11 14 10 3 5 5 1 2 Ya se construyó el script para base de datos pero está marcando errores en alguna parte del mismo. Al final de todo, a la empresa contratista le interesa una serie de datos que se agrega en la tabla de abajo. La tabla deberá ser enviada al correo grosas@utim.edu.mx, a más tardar cinco días después de la publicación de éste documento. Información requerida. Enunciado 0. Mostrar el nombre de todos los trabajadores 1. 2. 3. 4. 5. 6. 7. 8. Nombre de los trabajadores cuya tarifa sea entre 50 y 100 ¿Cuales son los oficios de los trabajadores asignados al edificio 435? Indicar el nombre de todos los trabajadores y de su supervisor Nombre de los trabajadores asignados a oficinas ¿Qué trabajadores reciben una tarifa por hora mayor que la de su supervisor? ¿Cuál es el número total de días que se han dedicado a plomería en el edificio 111? ¿Cuántos tipos de oficio hay? Para cada supervisor ¿Cuál es la tarifa por hora más alta que se paga a un trabajador que informa a ese Instrucción SQL (Script) Select Nombre from Trabajador Datos Resultantes Gutiérrez Lucia Alquezada María Elena García Hector Yonic Vazquez Eduardo Espinoza Isabel Marquez Patricia Sánchez Raquel supervisor? 9. Para cada arquitecto. ¿Cuál es la tarifa más alta que paga a un trabajador? 10. Para cada tipo de edificio. ¿Cuál es el nivel de calidad medio de los edificios con categoría 1? Considérese sólo aquellos tipos de edificios que tienen un nivel de calidad máximo no mayor de 3. 11. ¿Qué trabajadores reciben una tarifa por hora menor que la del promedio? 12. ¿Qué trabajadores reciben una tarifa por hora menor que la del promedio de los trabajadores que tienen su mismo oficio? 13. Seleccione el nombre de los electricistas asignados al edificio 210 y la fecha en la que empezaron a trabajar en él. 14. Muestre toda la información de los trabajadores excepto su tarifa y guárdelo en una tabla nueva. 15. Muestre los nombres de los electricistas, la dirección de los edificios donde han trabajado el año pasado y las fechas de esas asignaciones. Script de base de datos Create DataBase Practica5 go use Practica5 go Create table Trabajador ( IdTrabajador smallint not null, nombre varchar (40), tarifa float, oficio varchar (15) default 'Operador', IdSupervisor smallint null, Constraint PK_Trabajador Primary Key (IdTrabajador), Constraint FK_Trabajador_Supervisor Foreign Key (IdSupervisor) References Trabajador (IdTrabajador) ) Create table Edificio ( IdEdificio smallint not null, direccion varchar (20), tipo char(10) default ('Oficina'), nivelCalidad tinyint, categoria smallint, Constraint PK_Edificio Primary Key (IdEdificio), Constraint Ck_tipo Check (tipo in ('Oficina','Comercio','Almacen','Residencia'), Constraint Ck_NivelCalidad Check (nivelCalidad>0 and nivelCalidad<9), Constraint Ck_categoria Check (categoria>0 and categoria<=5), ) Create table Asignacion ( trabajador smallint, edificio smallint, fechaInicio datetime Default (getdate()), numeroDias int, Constraint PK_Asignacion Primary Key (trabajador,edificio,fechaInicio), Constraint FK_Asignacion_Trabajador Foreign Key (Trabajador) References Trabajador(IdTrabajador), Constraint FK_Asignacion_Edificio Foreign Key (Edificio) References Edificio(Idedificio), Constraint Ck_numeroDias Check (numeroDias>0), ) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio)values (76,'Gutiérrez Lucia' ,120,'Arquitecto') INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (230,'Alquezada María Elena' ,56.5,'Plomero',76) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (234,'Vazquez Eduardo' ,78.9,'Electricista',76) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (576,'Marquez Patricia' ,23.2,'Electricista',234) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (234,'Torres Miguel',34.4,'Carpintero',76) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (233,'García Hector Yonic' ,100,'Arquitecto',76) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (542,'Espinoza Isabel' ,23.2,'Albañil',233) INSERT INTO Trabajador (IdTrabajador,Nombre,Tarifa,Oficio,IdSupervisor)values (646,'Sánchez Raquel' ,23.2,'Albañil',233) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (111,'Rosendo Marquez 16','Oficina',4,1) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (210,'4 Pte. 2354','Oficina',3,1) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (312,'Calle Albatros 2','Oficina',2,2) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (435,'Hidalgo 1232','Comercio',1,1) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (460,'Callejon Emiliano Z.','Almacen',3,3) INSERT INTO Edificio (IdEdificio,direccion,tipo,nivelCalidad,categoria) VALUES (515,'<Pendiente>','Residencia',3,2) GO INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (230,111,convert(datetime,'13/02/2009'),14) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (576,210,convert(datetime,'03/10/2009'),13) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (234,312,convert(datetime,'30/11/2009'),12) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (76,435,convert(datetime,'02/01/2010'),11) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (234,111,convert(datetime,'13/02/2009'),14) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (234,210,convert(datetime,'03/10/2009'),13) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (76,312,convert(datetime,'30/11/2009'),12) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (234,435,convert(datetime,'02/01/2010'),11) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (542,435,convert(datetime,'02/01/2010'),14) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (646,460,13) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,515,12) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (76,460,convert(datetime,'02/01/2010'),11) INSERT INTO Asignacion (trabajador,edificio,numeroDias) VALUES (234,460,14) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (76,515,convert(datetime,'01/12/2010'),10) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,111,convert(datetime,'30/11/2009'),3) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,460,convert(datetime,'15/01/2010'),5) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,210,convert(datetime,'20/09/2009'),5) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,210,convert(datetime,'17/10/2009'),1) INSERT INTO Asignacion (trabajador,edificio,fechaInicio,numeroDias) VALUES (233,435,convert(datetime,'17/01/2010'),2)