create table CONDUCTORES( Co_CodiConduc int primary key not null, Co_NombConduc varchar(35), Co_DireConduc varchar(35), Co_FechaNaci datetime )
create table VIAJES( Vi_NumeVuelta int primary key not null, Vi_Placa char(8) references BUSES not null, Vi_CodiRuta tinyint references RUTAS not null, Vi_NumePasajero int, Vi_FechaViaje datetime, Vi_CodiConduc int references CONDUCTORES not null, Vi_ValoPasaj money )
TALLER PRACTICA TERMINALUTILIZANDO TRANSACT-SQL 1. Restaurar la base de datos Terminal 2. Consultar por cada conductor cdigo, nombre y edad. nicamentepara conductores mayores de 50 aos y cuyo nombre comience porPARRA. 3. Consultar por cada bus su placa, capacidad y el valor promedio de lospasajes para los viajes realizados durante los ltimos dos meses. 4. Realizar una consulta que nos permita conocer la placa del bus,cdigo de la flota, y nmero de pasajeros transportados en general esdecir, en todos los viajes que haya realizado. nicamente para busescuya capacidad sea mayor de 45 pasajeros. 5. Consultar de cada conductor su nombre, direccin, total recaudado en viajes y su pago. El pago es el 20% del valor recaudado en susviajes. 6. Realizar una consulta que permita mostrar cdigo de la flota,descripcin de la flota. Solo par aquellas flotas cuya descripcin seaBRASILIA. 7. Realizar una consulta que permita mostrar el Cdigo del conductor,nombre del conductor, fecha de nacimiento, direccin, telfono. Solopara aquellos conductores cuya fecha de nacimiento sea el mes deenero. 8. Consultar por cada conductor nombre del conductor, placa del bus yvalor recaudado en pagos el da 3 de enero de 2006.
9. Consultar la placa de cada bus, nmero de pasajeros que llevan encada vuelta. Organizarlo por tipo de bus. 10. Consultar la placa del bus, que ms viaje haya hecho durante el mesanterior. 11. Consultar el nombre de cada conductor, la placa del bus. Solo paraaquellos conductores cuyo nombre comience con la letra "P". 12. Realizar una consulta que muestre el cdigo de la ruta, descripcinde la ruta y total recaudado en pasaje
select co_codiconduc, co_nombconduc,(2010 - year (Co_FechaNaci))as Edad from Conductores where co_nombconduc like 'parra%' and (2010 - year (Co_FechaNaci)) > 50;
select bu_placa, bu_capacidad, avg (vi_valopasaj) as Prom_Pasajes,MONTH(Vi_FechaViaje) as Mes from Buses B inner join Viajes V on B.bu_placa = V.vi_placa group by bu_placa, bu_capacidad, MONTH(Vi_FechaViaje)order by MONTH(Vi_FechaViaje) desc
select bu_placa, bu_codiflot, SUM (vi_numepasajero)as Pasajeros from Buses B inner join Viajes V on B.bu_placa = V.vi_placa where bu_capacidad > 45 group by bu_placa, bu_codiflot
select co_nombconduc, co_direconduc, (vi_numepasajero * vi_valopasaj)as Recuado, (((vi_numepasajero * vi_valopasaj)*20)/100) as Sueldo from Conductores C inner join Viajes v on C.co_codiconduc = v.vi_codiconduc group by co_nombconduc, co_direconduc, (vi_numepasajero * vi_valopasaj),(((vi_numepasajero * vi_valopasaj)*20)/100);
select fl_codiflot, fl_nomflot from Flota where fl_codiflot like 'brasilia%'
select * from Conductores where (MONTH(Co_FechaNaci))= 01 select co_nombconduc, vi_placa, SUM (vi_valopasaj) as Recaudo, Vi_FechaViaje from Conductores C inner join Viajes v on C.co_codiconduc = v.vi_codiconduc where MONTH( Vi_FechaViaje) = 03 and DAY(Vi_FechaViaje)= 06 and YEAR(Vi_FechaViaje) = 2006 group by co_nombconduc, vi_placa, Vi_FechaViaje;
select bu_placa, vi_numepasajero, bu_tipo from Buses B inner join Viajes V on B.bu_placa = V.vi_placa order by bu_tipo;
select bu_placa, Vi_NumeVuelta, Vi_FechaViaje from Buses B inner join Viajes V on B.bu_placa = V.vi_placa where MONTH(Vi_FechaViaje) = 02 order by Vi_NumeVuelta desc
select co_nombconduc, vi_placa from Conductores C inner join Viajes v on C.co_codiconduc = v.vi_codiconduc where co_nombconduc like 'p%'group by co_nombconduc, vi_placa
select ru_codiruta,ru_nombruta, sum(ru_valopasaj * vi_numepasajero) as Recaudo from Rutas R inner join Viajes V on R.ru_codiruta = V.vi_codiruta group by ru_codiruta, ru_nombruta
Resuelva los puntos planteados en este taller, tomando como base el documento Subconsultas.pdf. Al finalizar la sesin de clase remita el documento, de acuerdo con las indicaciones del instructor. (1 hora) SUBCONSULTAS COMO TABLA DERIVADA Consulta para visualizar el codigo de la orden y el codigo del cliente USE northwind SELECT orderid, customerid FROM orders GO LA SUBCONSULTA QUEDARIA USE northwind SELECTT.orderid,T.customerid FROM ( SELECT orderid, customerid FROMorders) AS T GO 1. De acuerdo con su analisis concluya cul seria el objetivo de realizar sub consultas como una tabla derivada y en que caso usted la utilizaria, escriba un ejemplo para hacerlo. SUBCONSULTAS COMO EXPRESION Se desea visual i zar el nombre del producto, precio unitario, preciopr omedi o de t odos l os pr oduct os y l a di f er enci a quehay ent r e el pr eci o pr omedi o y el pr eci o del pr oduct o, par a l os pr oduct os que pertenecen a la categora 6. Inicialmente podriamos construir la siguiente sintaxis
sin embargo, el planteamiento se resuelve de la siguiente manera: USEnorthwindselectProductName,UnitPrice, (select avg(UnitPrice) fromProducts)asPrecioPromedio, UnitPrice- (select AVG(UnitPrice)fromProducts) asdiferenciafromproducts where CategoryID=6;
SOLUCIN 1. De acuer do con su anal i si s concl uya cul ser i a el obj et i vo de r eal i zar subconsultas como una tabla derivada y en que caso usted la utilizaria,escriba un ejemplo para hacerlo.
Segn mi punto de vista el objetivo de las Subconsultas es ver el pasoa paso de lo que se esta haciendo.Son utilies cuando una consulta depende del resultado de otra consulta.
SELECT Clientes. Compaa, Clientes.Telfono FROM Clientes
WHERE EXISTS (SELECT * FROM Pedidos WHERE Pedidos.IdPedido = Clientes.IdCliente)
2.Describa con sus propias palabras cual es la diferencia entre lasconsultas y por qu deberiamos involucrar una subconsulta paraobtener el resultado deseado.Derivada: Esta es usada para hacer una subconsulta en la clausulaFrom.
Expresin: Es usada con la clausulas Where .Correlacionada: Hace un subconsul t a por cada f i l a de l a consul t aexterna. 3. En la sub consulta hay una condicion redactada as: WHEREor1.orderid=od.orderid
Interprtela y con sus propias palabras descrbala.(qu se est haciendoy cul es la funcion que cumple dentro de la subconsulta?), redacte lasintaxis lgica de este tipo de condision y verifique si en una consultaconvencional se puede utilizar de la misma manera. Esta clausulas nos est imponiendo la condicin de que los datos deorderid deben ser iguales en las dos tablas. Y si no se cumple no sepuede mostrar ningn resultado.Where od.
ProductID = p.
ProductID
4. Implemente en alguna de las tres sentencias sql anteriores, la forma demostrar; ademas, el codigo del producto y la cantidad comprada; expliquesu decisin.
USEnorthwindSELECTod.orderid,customerid, ProductID, QuantityFROMordersASor1inner join[ or der det ai l s] ASodonor1.OrderID=od.OrderIDwhereQuantity > 20andod.ProductID=23GO