You are on page 1of 5

create database CAMIONEROS go use CAMIONEROS go create table camion ( matricula varchar(6) primary key, modelo varchar(30), ) create

table camionero ( idCamionero int primary key, nombre varchar(40), fono int, edad int ) create table registro ( idregistro int identity primary key, idCamionero int references camionero(idCamionero), matricula varchar(6) references camion(matricula), fechaConduccion date, kmRecorridos int ) INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO camionero camionero camionero camionero camionero camionero camionero camionero camionero camion camion camion camion camion camion VALUES(11111,'Aquiles Brinco',6911897,56) VALUES(22222,'Aquiles Baeza Parada',NULL,33) VALUES(33333,'Armando Casas',7484951,49) VALUES(44444,'Aquiles Castro',NULL,60) VALUES(55555,'Armando Mocha',7489606,52) VALUES(66666,'Guillermo Nigote',7462884,47) VALUES(77777,'Elvis Tek',7425763,50) VALUES(88888,'Aquiles Bailo',NULL,48) VALUES(99999,'Alan Brito Delgado',6915220,39)

VALUES('DBD001','Scania R 560') VALUES('DBD002','Scania R 620') VALUES('DBD003','Freightliner Cascadia DDC 515') VALUES('DBD004','Freightliner Cascadia DDC 475') VALUES('DBD005','Mercedes-Benz Actros 1841 LS') VALUES('DBD006','Mercedes-Benz Axor 2533') VALUES(11111,'DBD001','2012/10/12',3400) VALUES(11111,'DBD002','2012/09/18',2500) VALUES(22222,'DBD001','2012/07/05',4300) VALUES(22222,'DBD002','2012/06/05',7500) VALUES(11111,'DBD004','2012/02/12',1250) VALUES(33333,'DBD004','2012/02/01',3500) VALUES(44444,'DBD001','2012/01/23',2300) VALUES(55555,'DBD006','2012/01/18',5400)

registro registro registro registro registro registro registro registro

SELECT * FROM camionero SELECT * FROM camion SELECT * FROM registro /*1. Obtener el nombre del camionero y toda la información registrada de su salida*/ --Sin uso INNER JOIN

idregistro) >= 2 ORDER BY [Km Recorridos] /*4.idCamionero GROUP BY camionero.fechaConduccion.*/ SELECT camionero. Obtener el listado de los choferes que tienen teléfono*/ SELECT * FROM camionero WHERE camionero.nombre.fechaConduccion.matricula.kmRecorridos) AS [Km Recorridos] FROM registro INNER JOIN camionero ON registro.nombre HAVING COUNT(registro. registro. registro. Obtener el nombre y km recorridos de todos los camioneros aun cuando no hayan manejado un camión*/ SELECT camionero.idCamionero = camionero.idCamionero = camionero.kmRecorridos) AS [Km Recorridos].idCamionero AND registro.idCamionero = camionero.kmRecorridos FROM camion.matricula = camion. Obtener el nombre del camionero y la cantidad de kilómetros recorridos.modelo.nombre ORDER BY [Km Recorridos] /*5. camionero. registro.matricula /*2. Obtener el nombre y km recorridos de todos los camioneros que han manejado al menos 2 veces*/ SELECT camionero.idCamionero ORDER BY camion.fono IS NOT NULL .idregistro) AS [Nro Viajes] FROM registro INNER JOIN camionero ON registro.idCamionero GROUP BY camionero. Mostrar modelo del camión.fechaConduccion FROM camion INNER JOIN registro ON camion.nombre.idCamionero = camionero. camion. registro.nombre.modelo /*6.matricula --Usando INNER JOIN SELECT camionero. nombre del chofer y fecha en la que fue conducido*/ SELECT camion.kmRecorridos FROM registro INNER JOIN camionero ON registro. camion.nombre.idCamionero = camionero.nombre. registro WHERE registro.SELECT camionero.nombre.idCamionero = registro.matricula = registro. camionero.matricula INNER JOIN camionero ON registro.nombre ORDER BY [Km Recorridos] DESC /*3. COUNT(registro.idCamionero GROUP BY camionero. SUM(registro.idCamionero INNER JOIN camion ON registro. SUM(registro. registro.matricula = camion.kmRecorridos) AS [Km Recorridos] FROM camionero left JOIN registro ON camionero. Obtener el listado de choferes que no tienen telefono*/ SELECT * FROM camionero WHERE camionero. SUM(registro.fono IS NULL /*7.matricula.

idCamionero = registro.fechaConduccion BETWEEN '2012-01-01' AND '2012-03-31' ORDER BY registro.fechaConduccion) IN (1.3) ORDER BY registro.2. Obtener el listado de camioneros que no han conducido*/ SELECT camionero. registro.fechaConduccion >= '2012-01-01' AND registro.fechaConduccion) = 2012 AND MONTH(registro. registro.idCamionero = registro.matricula = camion.modelo FROM camion LEFT JOIN registro ON registro./*8.nombre.fechaConduccion FROM camionero INNER JOIN registro ON camionero.matricula = camion.matricula = camion.fechaConduccion --Usando BETWEEN SELECT camionero.kmRecorridos IS NULL SELECT camion.idCamionero INNER JOIN camion ON registro.idCamionero = registro.nombre HAVING SUM(registro.matricula WHERE registro. camion. camion.idCamionero = registro.kmRecorridos IS NULL SELECT camionero.nombre FROM registro right join camionero ON camionero.matricula. Obtener el nombre del chofer y modelo de camión que fueron manejados durante el primer trimestre del año 2012*/ --Usando Operadores Relacionales SELECT camionero.fechaConduccion FROM camionero INNER JOIN registro ON camionero.idCamionero GROUP BY camionero.fechaConduccion /*11.fechaConduccion --Usando Funciones MONTH y YEAR SELECT camionero.idCamionero WHERE registro.modelo FROM registro right JOIN camion ON registro. camion.matricula WHERE registro. Obtener el listado de choferes que recorrieron 4000 o más kms.matricula WHERE registro.modelo.fechaConduccion <= '2012-03-31' ORDER BY registro.idCamionero INNER JOIN camion ON registro. Obtener el listado de camiones que no han sido utilizados*/ SELECT camion.matricula WHERE registro.idCamionero INNER JOIN camion ON registro. registro.kmRecorridos IS NULL /*10. SUM(registro.nombre.idCamionero = registro.matricula WHERE YEAR(registro.fechaConduccion FROM camionero INNER JOIN registro ON camionero.matricula. camion.matricula = camion.*/ SELECT camionero.modelo.kmRecorridos) IS NULL /*9.nombre.modelo. camion.nombre FROM camionero LEFT JOIN registro ON camionero.kmRecorridos) AS [Km Recorridos] .matricula = camion.nombre.

nombre.modelo.nombre HAVING MAX(registro. Obtener el modelo del camión que realizó el viaje más corto.nombre.matricula = registro. MAX(registro. registro. registro.kmRecorridos) >= 4000 /*12.kmRecorridos FROM camion INNER JOIN registro ON camion. Obtener el nombre del camionero que realizó el viaje más largo. Indique el modelo del camión que realizó 2 o más viajes indicando la cantidad de kms recorridos*/ SELECT camion.idCamionero WHERE registro.matricula = camion.idCamionero GROUP BY camionero.idregistro) AS [Cantidad Viajes].nombre HAVING SUM(registro. registro.fechaConduccion FROM camionero INNER JOIN registro ON camionero.*/ SELECT camion.idCamionero GROUP BY camionero.kmRecorridos) AS [Km Recorridos] FROM camion INNER JOIN registro ON camion.kmRecorridos) FROM registro ) /*14.matricula = registro.kmRecorridos) FROM registro ) SELECT camionero.kmRecorridos = ( SELECT MIN(registro.kmRecorridos = ( SELECT MAX(registro.idCamionero = registro.modelo LIKE 'Freightliner%' .kmRecorridos FROM camionero INNER JOIN registro ON camionero. camion.idregistro) >= 2 ORDER BY [Cantidad Viajes] /*15.idCamionero INNER JOIN camion ON registro. SUM(registro.modelo.idCamionero = registro.matricula WHERE registro.modelo HAVING COUNT(registro. Indique que choferes han conducido camiones Scania y Freightliner*/ SELECT camionero.kmRecorridos) = ( SELECT MAX(registro.kmRecorridos) from registro ) /*13.matricula GROUP BY camion.matricula WHERE camion.idCamionero = registro. COUNT(registro.nombre.modelo.modelo LIKE 'Scania%' OR camion.kmRecorridos) FROM camionero INNER JOIN registro ON camionero.FROM camionero INNER JOIN registro ON camionero.*/ SELECT camionero.idCamionero = registro.

matricula WHERE camion../*Actualización de Registros UPDATE <nombre_tabla> SET <campo1> = <valor1> {[.matricula = camion.modelo LIKE 'Scania%' .<campoN> = <valorN>]} [ WHERE <condicion>] */ --Actualizar los kilometros recorridos por cada chofer a su equivalente en millas SELECT * FROM registro UPDATE registro SET kmRecorridos = kmRecorridos / 1..<campo2> = <valor2>.6093 --Actualizar el fono de los camiones que no poseen fono a 0 SELECT * FROM camionero UPDATE camionero SET fono = 0 WHERE fono IS NULL /*Eliminación de Registros DELETE FROM <nombre_tabla> [ WHERE <condicion>] */ --Eliminar los viajes que se realizaron durante el primer semestre del año 2012 DELETE FROM registro WHERE fechaConduccion BETWEEN '2012-01-01' AND '2012-06-30' --Eliminar todos los camiones Scania DELETE FROM camion WHERE modelo LIKE 'Scania%' --Eliminar todos los viajes en los cuales participó un camión Scania DELETE registro FROM registro INNER JOIN camion ON registro...