PRACTICO SQL 2 1.- Crear una consulta que despliegue el last name salar de los empleados que ganan m!s de "12.###. $scri%e tu sentencia SQL en un arc&i'o de te(to llamado la%2)1.sql. $*ecutar la consulta S$L$CT last)name+ salar ,RO emploees /$R$ salar 0gt 12### 2.- Crear una consulta que despliegue el last)name del empleado department num%er para cada nmero de empleado 134 S$L$CT last)name + department)num%er ,RO emploees /$R$ emploee)id 5 134 6.- odi7icar la%2)1.sql para desplegar el last name salar para todos los empleados cuo salario no esta en el rango de "8.### "12.###. $scri%e tu sentencia SQL en el te(to del arc&i'o nom%rado S$L$CT last)name+ salar ,RO emploees /$R$ salar 9OT :$$T$$9 8### A9; 12### <.- ;esplegar el last)name del empleado+ *o% I; start date de empleados cua &ired =7ec&a de empleo> est! entre ,e%rero 2#+ 1??@+ ao 1+ 1??@. Ordenar la consulta ascendentemente por start date S$L$CT last)name+ *o%)id+ start)date ,RO emploees /$R$ &ired :$$T$$9 2#-,$:-1??@ A9; B1-A-1??@ OR;$R : start)date ASC 8.- ;esplegar el last name department num%er de t odos los empleados del departamento 2# 8#+ ordenar al7a%Dticamente por name S$L$CT last)name+ departament)num%er ,RO emploees /$R$ departament)num%er I9=2#+8#> OR;$R : last)name 4.- odi7icar la%2)6.sql para listar el last name salar de empleados que ganan entre "8.### "12.### est!n en el departamento 2# o 8#. $tiquetar las columnas por emploee mont&l salar+ respecti'amente. respecti'amente. Regra%ar la%2)6.sql como la%2)4.sql. $*ecutar la sentencia en la%2)4.sql S$L$CT last)name AS EemploeeF+ salar AS Emont&l salarF ,RO emploees /$R$ salar :$T$$9 8### A9; 12### A9; departament)id in =2#+8#> 3.- ;esplegar el last name el &ire date de cada empleado que &a sido empleado en el aGo 1??< S$L$CT last)name+ &ire)date
,RO emploees /$R$ &ire)date LIH$ B?< @.- ;esplegar el last name *o% title de todos los empleados que no tienen un administrador S$L$CT last)name+ *o%)id ,RO emploees /$R$ manager)id IS 9JLL ?.- ;esplegar el last name+ salar commissions para todos los empleados que ganan comisiones. Ordenar datos descendentemente de salar commisions S$L$CT last)name+ salar + commission)pct ,RO emploees /$R$ commission)pct IS 9OT 9JLL OR;$R : salar ;$SC +commission)pct ;$SC 1#.- ;esplegar los last name de todos los empleados donde la tercera letra del nom%re es una EaF S$L$CT last)name ,RO emploees /$R$ last)name LIH$ B)))a 11.- ;esplegar el last name de todos los empleados que tienen una EaF una EeF en su last name S$L$CT last)name ,RO emploees /$R$ last)name LIH$ Ba A9; last)name LIH$ Be 12 ;esplegar el last name+ *o% salar para todos los empleados que tienen como *o% sales representati'e o stocK clerK cuo salar no es igual al "2.8##+ "6.8## o "3.### S$L$CT last)name+ *o%)id+ salar ,RO emploees /$R$ *o% )sales in=BSA)R$P+ BST)CL$RH B> A9; salar 9OT in=28##+68##+3###> 16.- odi7icar la%2)4.sql para desplegar el last name+ salar comisin para todos los empleados cua comisin es un 2#. Regra%ar la%2)4.sql como la%2)16.sql. $*ecutar la sentencia la%2)16.sql S$L$CT last)name+ salar+ commission)pct ,RO emploees /$R$ commission)pct 5 .2#
PRACTICO 6 SQL 1.- Para cada empleado+ desplegar el apellido+ calcular el nmero de meses entre la 7 ec&a actual la 7ec&a de contrato. $tiquetar la columna como E$S$S TRA:AMA;OSF. Ordenar la consulta por el nmero de meses tra%a*ados. Redondear el nmero de meses &asta el entero m!s cercano. S$L$CT last)name+ ROJ9;=O9T/S):$$T$$9=SS;AT$+ &ire)date>+#> AS E$S$S TRA:AMA;OSF ,RO emploees OR;$R : ROJ9;=O9T/S):$$T$$9=SS;AT$+ &ire)date>+#> 2.- $scri%e una consulta que despliegue lo siguiente para cada empleado Napellido del empleado reci%e Nsalario mensualmente+ pero quiere reci%ir Ntres 'eces su salario. $tiqueta la columna como ESALARIO SOA;OF S$L$CT last)name reci%e salar mensualmente+ pero quiere reci%ir salar 6 AS SALARIO SOA;O ,RO emploees 6.- $scri%a una consulta que despliegue el apellido+ el salario para todos los empleados. $l 7ormato de salario de%e ser de 18 caracteres de largo+ completar con el comodUn " a la iVquierda. $tiquetar la columna como SALARIO. S$L$CT last)name+ LPA;=salar+18+"> AS SALARIO ,RO emploees <.- ;esplegar para cada empleado el apellido+ la 7ec&a de contrato+ la 7ec&a de re'isin de salario+ con el primer lunes despuDs de seis meses de ser'icio. $tiquetar la columna como R$WISIO9. $l 7ormato de la 7ec&a de%e ser similar a Eonda+ t&e T&irt-,irst o7 Mul+ 2###F S$L$CT last)name+ &ire)date+ TO)C/AR=9$XT);A=A;;)O9T/S=&ire)date+4>+O9;A>+ 7m;a + t&e ;dspt& o7 ont&+ > AS R$WISIO9 ,RO emploees 8.- ;esplegar el apellido+ la 7ec&a de contrato+ el dUa de la semana en que el empleado inicio su empleo. $tiquetar la columna como E;IAF.Ordena el resultado por el dUa de la semana iniciado con el lunes. S$L$CT last)name+ &ire)date+ TO)C/AR=&ire)date+;A> AS ;IA ,RO emploees OR;$R : TO)C/AR=&ire)date - 1 +d> 4.- Crear una consulta que despliegue el apellido del empleado comisin. Si el empleado no gana comisin+ desplegar ESin ComisinF $tiquetar la columna como CO S$L$CT last)name+ 9WL=TO)C/AR=commission)pct>+Sin Comisin> AS CO ,RO emploees 3.- Crear una consulta que despliegue el apellido del empleado+ la cantidad anual de su salario con asteriscos. Cada asterisco signi7ica miles de dlares. Ordenar los datos descendentemente por salario. $tiquetar la columna como E$PL$A;O SJ SALARIOF
S$L$CT last)name+ RPA;= + salarY1###Z1+> ,RO emploees @.- Jsando la 7uncin ;$CO;$+ escri%ir una consulta que despliegue el grado de todos los empleados %asados en los 'alores de la columna CAR[O)I;+ como se muestra a continuacin\ CAR[O [RA;O A;)PR$S A ST)A9 : IT)PRO[ C SA)R$P ; ST)CL$RH $ 9inguno de los anteriores # S$L$CT CAR[O)I;+ ;$CO;$= A;)PR$S+A+ ST)A9+:+ IT)PRO[+C+ SA)R$P+;+ ST)CL$RH+$+ # > ,RO emploees @.- Reescri%e la consulta anterior utiliVando la cl!usula CAS$. S$L$CT CAR[O)I; + CAS$ CAR[O)I; /$9 A;)PR$S T/$9 A /$9 ST)A9 T/$9 : /$9 IT)PRO[ T/$9 C /$9 SA)R$P T/$9 ; /$9 ST)CL$RH T/$9 $ $LS$ # ,RO emploees
PRACTICO < SQL ;esplegando ;atos de ltiples Ta%las 1.- $scri%a una consulta que despliegue el apellido+ nmero nom%re del departamento para todos los empleados S$L$CT e.last)name+ d.departament)id+ d.departament)name ,RO emploees e+ departaments d /$R$ e.departament)id 5 d.departament)id 2.- Crear una nica lista de todos los identi7icadores de los cargos que est!n en el departamento @#. Incluir la localiVacin del departamento en la salida S$L$CT e.*o%)id + l.location)name ,RO emploees e+ locations l+ departaments d /$R$ e.departament)id 5 d.departament)id A9; d.location)id 5 l.location)id A9; e.departament)id 5 @# 6.- $scri%ir una consulta que despliegue el apellido del empleado+ nom%re del departamento+ localiVacin ciudad de todos los empleados que ganan comisin S$L$CT e.last)name+ d.departament)name+ l.location)id+ l.cit ,RO emploees e+ departaments d + locations l /$R$ e.departament)id 5 d.departament)id A9; d.location)id 5 l.location)id A9; commission)pct IS 9OT 9JLL <.- ;esplegar el apellido del empleado nom%re del departamento para todos los empleados que tienen una EaF minscula en su apellido. $scri%ir tu sentencia SQL en un arc&i'o de te(to llamado la%<)<.sql S$L$CT e.last)name+ d.departament)name ,RO emploees e+ departaments d /$R$ e.departament)id 5 d.departament)id A9; e.last)name LIH$ a 8.- $scri%ir una consulta que despliegue el apellido+ cargo+ nmero nom%re de departamento para todos los empleados que tra%a*an en Toronto S$L$CT e.last)name+ e.*o%)id+ d.departament)id+ d.departament)name ,RO emploees e+ departaments d+ locations l /$R$ e.departament)id 5 d.departament)id A9; d.location)id 5 l.location)id A9; LO$R=l.cit> 5 LO$R=Toronto> 4.- ;esplegar el apellido nmero del empleado con el apellido de su administrador nmero de este. $tiquetar las columnas como $mpleado+ $mp]+ Administrador gr]+ respecti'amente. $scri%ir tu sentencia SQL en un arc&i'o de te(to llamado la%<)4.sql S$L$CT e.last)name AS $mpleado + e.emploee)id AS $mp]+ a.last)name AS Administrador+ a.manager)id AS gr]
,RO emploees e+ managers a /$R$ e.manager)id 5 a.manager)id PRACTICO 8 SQL SOLJTIO9 diciem%re 4+ 2##@este%an7uenteal%a;e*a un comentario Pr!ctica 8 1.- Las 7unciones de grupo tra%a*an cruVando muc&as 7ilas para producir un resultado =W>=,> W 2.- Las 7unciones de grupo incluen nulos en sus c!lculos =W>=,> , 6.- La cl!usula /$R$ restringe 7ilas antes de la inclusin en un c!lculo de 7 unciones de grupo =W>=,> W <.- ;esplegar el salario m!(imo+ mUnimo+ sumatoria+ promedio de todos los tra%a*adores. $tiquetar !(imo+ Unimo+ Sumatoria+ Promedio respecti'amente. Redondear los resultados al entero m!s pr(imo. [uardar la consulta como La%8)<.sql S$L$CT ROJ9;=AX=salar>+#> AS a(imo + ROJ9;=I9=salar>+#> AS inimo+ ROJ9;=SJ=salar>+#> AS Sumatoria+ ROJ9;=AW[=salar>+#> AS Promedio ,RO emploees 8.- odi7icar la consulta La%8)< para que despliegue el salario m!(imo+ mUnimo+ sumatoria promedio para cada tipo de cargo. [uardar la consulta como La%8)8.sql S$L$CT ROJ9;=AX=salar>+#> AS a(imo + ROJ9;=I9=salar>+#> AS inimo+ ROJ9;=SJ=salar>+#> AS Sumatoria+ ROJ9;=AW[=salar>+#> AS Promedio ,RO emploees [ROJP : *od)id 4.- $scri%ir una consulta que despliegue el nmero de tra%a*adores con el mismo cargo. S$L$CT COJ9T=> ,RO emploees [ROJP : *o%)id 3.- ;eterminar el nmero de administradores sin ellos en el listado. $tiquetar la columna como E9mero de AdministradoresF S$L$CT COJ9T=;ISTI9CT manager)id> AS 9mero de Administradores ,RO emploees @.- $scri%ir una consulta que despliegue la di7erencia entre el salario m!(imo mUnimo. $tiquetar la columna como di7erencia S$L$CT =AX=salar> - I9=salar>> AS di7erencia ,RO emploees
?.- ;espliega el identi7icador del administrador el salario del empleado que menos reci%e por administrador. $(cluir aquellos donde el administrador no es conocido. $(cluir cualquier grupo donde el salario mUnimo es 4### o menor. Ordenar la consulta descendentemente por salario S$L$CT manager)id +salar ,RO emlpoees /$R$ manager)id IS 9OT 9JLL [ROJP : manager)id /AWI9[ I9=salar> 0gt 4### OR;$R : I9=salar> ;$SC 1#.- $scri%ir una consulta que despliegue para cada departamento+ nom%re+ nmero de empleados salario promedio para todos los empleados del departamento. $tiquetar las columnas como\ 9om%re+ LocaliVacin+ 9umero de personas Salario respecti'amente. Redondear el salario promedio a dos decimales. S$L$CT d.departament)name AS 9om%re + COJ9T=> AS 9umero de personas+ ROJ9;=AW[=salar>+2> AS Salario ,RO departaments d+ emploees e /$R$ e.departament)id 5 d.departament)id [ROJP : d.departament)name 11.- Crear una consulta que despliegue el nmero total de empleados el total de empleados contratado en 1??8+ 1??4+ 1??3 1??@. $tiquetar con enca%eVados apropiados cada columna. S$L$CT COJ9T=> AS Total + SJ=;$CO;$=TO)C/AR=&ire)date+>+1??8+1+#>> AS 1??8 + SJ=;$CO;$=TO)C/AR=&ire)date+>+1??4+1+#>> AS 1??4 + SJ=;$CO;$=TO)C/AR=&ire)date+>+1??3+1+#>> AS 1??3 + SJ=;$CO;$=TO)C/AR=&ire)date+>+1??@+1+#>> AS 1??@ ,RO emploees 12.- Crear una consulta en una matriV que despliegue el cargo+ salario+ para cada cargo %asado en un nmero de departamento el salario total para cada cargo+ para los departamentos 2#+ 8#+ @#+ ?#. ;ar a cada columna un enca%eVado apropiado. S$L$CT *o%)id+ SJ =;$CO;$=departament)id+2#+salar>> AS ;epartamento 2#+ SJ =;$CO;$=departament)id+8#+salar>> AS ;epartamento 8#+ SJ =;$CO;$=departament)id+@#+salar>> AS ;epartamento @#+
SJ =;$CO;$=departament)id+?#+salar>> AS ;epartamento ?#+ SJ=salar> AS Salario Total ,RO emploees [ROJP : *o%)id
PRACTICO 4 SQL SOLJTIO9 diciem%re 4+ 2##@este%an7uenteal%a;e*a un comentario Pr!ctica 4
1.- $scri%ir una consulta que despliegue el apellido 7ec&a de contrato de cualquier empleado que tra%a*e en el mismo departamento que ^lotKe. $(cluir a ^lotKe S$L$CT last)name+ &ire)date ,RO emploees /$R$ departament)id 5 =S$L$CT departament)id ,RO emploees /$R$ last)name 5 ^lotKe> A9; last)name ^lotKe 2.- Crear una consulta que despliegue el nmero del empleado su apellido de aquellos empleados que ganan m!s que el salario promedio. Ordenar ascendentemente por salario S$L$CT emploee)id+ last)name ,RO emploees /$R$ salar 0gt =S$L$CT AW[=salar> ,RO emploees> OR;$R : salar ASC 6.- escri%ir una consulta que despliegue el nmero del empleado su apellido de aquellos empleados que tra%a*an en un departamento con cualquier empleado que tenga una EuF en su apellido. $scri%ir tu consulta SQL en un te(to llamado la%4-6.sql. $*ecutar tu consulta S$L$CT emploee)id+ last)name ,RO emploees /$R$ departament)id I9 =S$L$CT departament)id ,RO emploees /$R$ LO$R=last)name> LIH$ u> <.- ;esplegar el apellido+ nmero de departamento e identi7icador del cargo de todos los empleados cua localiVacin de departamento es 13## S$L$CT last)name+ departament)id+ *o%)id ,RO emploees /$R$ departament)id in =S$L$CT departament)id ,RO departaments /$R$ location)id 5 13##> 8.- ;esplegar el apellido salario para cada empleado que reporte a Hing
S$L$CT apellido+ salar ,RO emploees /$R$ manager)id in =S$L$CT manager)id ,RO emploees /$R$ LO$R=last)name> 5 King> 4.- ;esplegar el nmero de departamento+ apellido e identi7icador del cargo para cada empleado en el departamento $(ecuti'e S$L$CT departament)id+ last)name+ *o%)id ,RO emploees /$R$ departament)id 5 =S$L$CT departament)id ,RO departaments /$R$ departament)name5 $(ecuti'e> 3.- odi7icar la consulta la%4-6.sql para desplegar el nmero del empleado+ apellido salario de todos aquellos empleados que ganan m!s que el salario promedio que tra%a*a en un departamento con cualquier empleado en cuo nom%re tenga una EuF. Regra%ar la%4-6.sql como la%4-3.sql. $*ecutar tu arc&i'o la%4-3.sql S$L$CT emploee)id+ last)name+ salar ,RO emploees /$R$ departament)id I9 =S$L$CT departament)id ,RO emploees /$R$ LO$R=last)name> LIH$ u> A9; salar 0gt =S$L$CT AW[=salar> ,RO emploees>
PRACTICO 3 SQL SOLJTIO9 ;etermine si las siguientes dos preguntas son 'erdadera o 7alsa
1.- La siguiente sentencia es 'alida\ =W> =,> ;$,I9$ 0 p)'al 5 1## , 2.- $l comando ;$,I9$ es un comando SQL =W> =,> , 6.- $scri%a un script para desplegar el apellido de un empleado+ cargo 7ec&a de contrato para todos los empleados que se iniciaron entre un rango dado. Concatenar nom%re tra%a*o *untos+ separado por un espacio coma+ etiquetar la columna como $mpleado. $n un arc&i'o Script SQL separado+ use el comando ;$,I9$ para pro'eer los dos rangos. Jse el 7ormato Y;;Y. [ra%ar los arc&i'os script como la%3-6a.sql la%3-6%.sql ;$,I9$ 7ec&aInicio 5 #1Y#1Y1?@3 ;$,I9$ 7ec&aTermino 5 #1Y#1Y2##3 S$L$CT last)name + *o%)id AS $mpleado + &ire)date ,RO emploees /$R$ &ire)date :$$T$$9 TO);AT$=0amp7ec&aInicio+Y;;Y> A9; TO);AT$=0amp7ec&aTermino+Y;;Y> <.- $scri%ir un script para desplegar el apellido+ el identi7icador del cargo nom%re del departamento para cada empleado en una localiVacin dada. [ra%ar el arc&i'o script como la%3<.sql S$L$CT e.last)name + e.*o%)id+ d.departament)name ,RO emploees e+ departaments d+ locations l /$R$ e.departament)id 5 d.departament)id A9; d.location)id 5 l.location)id A9; l.cit 5 0ampentrada
PRACTICA 6 1. Escriba una consulta para mostrar la fecha actual. Etiquete la columna como Date.
S$L$CT SS;AT$ as ;ate ,RO ;JAL 2. El departamento de recursos humanos necesita mostrar el número de empleado, el apellido, el salario y el salario aumentado en un 15,5 % (expresado como número entero de cada empleado. Etiquete la columna como !e" #alary. $uarde la sentencia #& en un archi'o de texto denominado lab)*)2.sql.
S$L$CT $Ploee)id+ last)name+ Salar+ TRJ9C=Salar1.18> as 9e_ Salar ,RO emploees *. E+ecute la consulta del archi'o lab)*)2.sql.
... . -rear una columna que reste el antiuo salario al nue'o salario. Etiquete la columna como /ncrease.
S$L$CT $Ploee)id+ last)name+ Salar+ TRJ9C=Salar1.188> as 9e_ Salar + =TRJ9C=Salar1.188>-Salar> as Increase ,RO emploees
5. Escriba una consulta que muestre el apellido (con la primera letra en mayúsculas y las dem0s en minúsculas y la lonitud del apellido de todos los empleados cuyo nombre comience por , - o . Etiquete cada columna de forma adecuada. 3rdene los resultados por los apellidos de los empleados.
S$L$CT I9ITCAP=last)name> as 9ame+ L$9[T/=last)name> as Lengt& ,RO emploees /$R$ SJ:STR=last)name+1+1> I9 =M+A+> 4eescriba la consulta para que se pida al usuario que introduca la primera letra de un apellido. 6or e+emplo, si el usuario introduce 7 cuando se le pida una letra, la salida deber8a mostrar todos los empleados cuyo apellido comience por la letra 7.
S$L$CT I9ITCAP=last)name> as 9ame+ L$9[T/=last)name> as Lengt& ,RO emploees /$R$ SJ:STR=last)name+1+1> I9 =\')caracter> 9. El departamento de recursos humanos desea a'eriuar el tiempo que lle'an contratados todos los empleados. 6ara cada empleado, muestre el apellido y calcule el número de meses entre hoy y la fecha en que se contrat:. Etiquete la columna como 3!;7#<34=ED. 3rdene los resultados por el número de meses empleado. 4edondee el número de meses al número entero m0s cercano. !ota> &os resultados que obtena diferir0n.
S$L$CT I9ITCAP=last)name> as 9ame+ ROJ9;= O9T/S):$T$$9= SS;AT$ + /IR$);AT$ > > as O9T/S)ORH$; ,RO emploees OR;$R : ROJ9;= O9T/S):$T$$9= SS;AT$ + /IR$);AT$ > >
?. @ree un informe que cree lo siuiente para cada empleado> Aemployee last nameB earns AsalaryB monthly but "ants A* times salaryB. Etiquete la columna como Dream #alaries.
S$L$CT LAST)9A$ earns TO)C/AR= SALAR + "?????.?? > mont&l %ut _ants TO)C/AR= 6SALAR + "?????.?? > . as ;ream Salaries ,RO $PLO$$S
C. @ree una consulta para mostrar el apellido y el salario de todos los empleados. ormatee el salario para que tena una lonitud de 15 caracteres, rellenados a la iquierda con el s8mbolo . Etiquete la columna como #-&-4F.
S$L$CT LAST)9A$+ LPA;= Salar+ 18+ "> as SALAR ,RO $PLO$$S
G. uestre el apellido, la fecha de contrataci:n y la fecha de re'isi:n salarial de cada empleado, que es el primer lunes despuHs de seis meses de ser'icio. Etiquete la columna como 4EI/E<. ormatee las fechas para que apareca en un formato similar a Jonday, the ;hirtyKirst of uly, 2)))L.
S$L$CT LAST)9A$+ /IR$);AT$+ Salar+ TO)C/AR= 9$XT);A= A;;)O9T/S= /IR$);AT$+ 4 > + Lunes> + 7m;A de 7m;;SPT/ de 7mO9T/+ 7m> as R$WI$ ,RO $PLO$$S 1). uestre el apellido, la fecha de contrataci:n y el d8a de la semana en que empe: el empleado. Etiquete la columna como D-F. 3rdene los resultados por d8a de la semana, empeando por el lunes.
S$L$CT LAST)9A$+ /IR$);AT$+ TO)C/AR=/IR$);AT$+7m;A> as ;A ,RO $PLO$$S OR;$R : 9$XT);A=/IR$);AT$+Lunes> #E&E@; &-#;!-E, 7/4ED-;E, ;3@7-4(7/4ED-;E,MfmD-FM,MnlsdatelanuaeNspanishM as OD-FO 43 E6&3FEE# 34DE4 PF !EQ;D-F(7/4ED-;E,M&unesM #E&E@; &-#;!-E, 7/4ED-;E, ;3@7-4(7/4ED-;E,MfmD-FM as OD-FO 43 E6&3FEE# 34DE4 PF tochar(7/4ED-;E,MdM 11. @ree una consulta que muestre los apellidos y los importes de comisi:n de los empleados. #i un empleado no ana ninuna comisi:n, muestre J!o @ommissionL. Etiquete la columna como @3.
S$L$CT LAST)9A$+ ;$CO;$= 9WL=commission)pct+#> + # + 9o Commission+ =commission)pctsalar>Y1## > as CO ,RO $PLO$$S
12. @ree una consulta que muestre los ocho primeros caracteres de los apellidos de los empleados e indique los importes de sus salarios con as teriscos. @ada asterisco representa mil d:lares. @lasifique los datos en orden descendente de salario. Etiquete la columna como E6&3FEE#-!D;7E/4#-&-4/E#.
S$L$CT LAST)9A$ LPA;= + SALARY1###+ > as $PLO$$)A9; )T/$IR)SALARI$S ,RO $PLO$$S OR;$R : = SALARY1### > ;$SC 1*. ediante la funci:n DE@3DE, escriba una consulta que muestre el rado de todos los empleados bas0ndose en el 'alor de la columna 3P/D, mediante estos datos> 6uesto $rado -D64E# #;-! P /;643$ @ #-4E6 D #;@&E4= E !inuno de las anteriores )
S$L$CT MO:)I;+ ;$CO;$= MO:)id+ A;)PR$S+ A+ ST)A9+ :+ IT)PRO[+ C+ SA)R$P+ ;+ ST)CL$RH+ $+ MO:)id+ O> as [RA;$ ,RO $PLO$$S 1. Iuel'a a escribir la sentencia del e+ercicio anterior mediante la sintaxis @-#E.
S$L$CT MO:)I;+ CAS$ *o%)id /$9 A;)PR$S T/$9 A /$9 ST)A9 T/$9 : /$9 IT)PRO[ T/$9 C /$9 SA)R$P T/$9 ; /$9 ST)CL$RHT/$9 ; $LS$ O $9; [RA;$ ,RO $PLO$$S
PRACTICA < ;etermine la 'alideV de las tres siguientes a7irmaciones. Seleccione Werdadero o ,also. 1. Las 7unciones de grupo tra%a*an a tra'Ds de muc&as 7ilas para generar un resultado. Werdadero Y,also 2. Las 7unciones de grupo incluen 'alores nulos en los c!lculos. WerdaderoY,also 6. La cl!usula /$R$ restringe las 7ilas antes de incluirlas en un c!lculo de grupo. Werdadero Y,also $l departamento de recursos &umanos necesita estos in7ormes\ <. :usque el salario m!s alto+ el m!s %a*o+ la suma el salario medio de todos los empleados. $tiquete las columnas como a(imum+ inimum+ Sum A'erage+ respecti'amente. Redondee los resultados al siguiente nmero entero. [uarde la sentencia SQL en un arc&i'o de te(to denominado la%)#<)#<.sql. SELECT ROUND(MAX(salary),0) AS "Maximo" , ROUND(MIN(salary),0) AS "Minimo", ROUND(SUM(salary),0) AS "Sumaoria", ROUND(A!(salary),0) AS "#rom$%io" &ROM $m'loy$$s
8. odi7ique la consulta en la%)#<)#<.sql para mostrar el salario mUnimo+ el m!(imo+ la suma el salario medio para cada tipo de tra%a*o. Wuel'a a guardar la%)#<)#<.sql como la%)#<)#8.sql. $*ecute la sentencia en la%)#<)#8.sql. SELECT ROUND(MAX(salary),0) AS "Maximo" , ROUND(MIN(salary),0) AS "Minimo", ROUND(SUM(salary),0) AS "Sumaoria", ROUND(A!(salary),0) AS "#rom$%io" &ROM $m'loy$$s ROU# * +o%i%
4. $scri%a una consulta para mostrar el nmero de personas con el mismo puesto. SELECT COUNT(-) &ROM $m'loy$$s ROU# * +o.i%
3. ;etermine el nmero de super'isores sin listarlos. $tiquete la columna como 9um%er o7 anagers. Indicacin\ Jtilice la columna A9A[$R)I; para determinar el nmero de super'isores. SELECT COUNT(DISTINCT mana/$ri%) AS "Nm$ro %$ A%minisra%or$s" &ROM $m'loy$$s
@. :usque la di7erencia entre el salario m!s alto el m!s %a*o. $tiquete la columna como ;I,,$R$9C$. SELECT (MAX(salary) 1 MIN(salary)) AS "%i2$r$n3ia" &ROM $m'loy$$s
Si le queda tiempo+ realice los siguientes e*ercicios\ ?. Cree un in7orme para mostrar el nmero de super'isor el salario del empleado peor pagado de ese super'isor. $(clua a los empleados cuo super'isor no se conoVca. $(clua los grupos
en los que el salario mUnimo sea 4.### dlares o menos. Clasi7ique la salida en orden descendente de salario. SELECT mana/$ri% ,salary &ROM $ml'oy$$s 45ERE mana/$ri% IS NOT NULL ROU# * mana/$ri% 5A!IN MIN(salary) 6/ 7000 ORDER * MIN(salary) DESC
Si desea a7rontar un desa7Uo maor+ realice estos e*ercicios\ 1#. Cree una consulta que muestre el nmero total de empleados + de dic&o total+ el nmero de empleados contratados en 1??8+ 1??4+ 1??3 1??@. Cree las ca%eceras de columna adecuadas. SELECT COUNT(-) AS "Toal" , SUM(DECODE(TOC5AR(8ir$%a$,9****9),:;;<,:,0)) SUM(DECODE(TOC5AR(8ir$%a$,9****9),:;;7,:,0)) SUM(DECODE(TOC5AR(8ir$%a$,9****9),:;;=,:,0)) SUM(DECODE(TOC5AR(8ir$%a$,9****9),:;;>,:,0)) &ROM $m'loy$$s
AS AS AS AS
":;;<" , ":;;7" , ":;;=" , ":;;>"
11. Cree una consulta de matriV para mostrar el tra%a*o+ el salario de dic&o puesto %asado en el nmero de departamento el salario total de ese puesto de los departamentos 2#+ 8#+ @# ?#+ proporcione una ca%ecera apropiada a cada columna. SELECT +o.i%, SUM (DECODE(%$'aram$ni%,?0,salary)) SUM (DECODE(%$'aram$ni%,<0,salary)) SUM (DECODE(%$'aram$ni%,>0,salary)) SUM (DECODE(%$'aram$ni%,;0,salary)) SUM(salary) AS "Salario Toal" &ROM $m'loy$$s ROU# * +o.i%
AS AS AS AS
"D$'aram$no "D$'aram$no "D$'aram$no "D$'aram$no
?0", <0", >0", ;0",