<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database</id>
	<title>Solución á Práctica DML sobre Employees Sample Database - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cifprodolfoucha.es/index.php?action=history&amp;feed=atom&amp;title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database"/>
	<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;action=history"/>
	<updated>2026-10-17T17:50:35Z</updated>
	<subtitle>Historial de revisiones de esta página en el wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17233&amp;oldid=prev</id>
		<title>Joselv: /* Solución ás consultas */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17233&amp;oldid=prev"/>
		<updated>2021-11-15T12:53:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Solución ás consultas&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;amp;diff=17233&amp;amp;oldid=17232&quot;&gt;Mostrar los cambios&lt;/a&gt;</summary>
		<author><name>Joselv</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17232&amp;oldid=prev</id>
		<title>Joselv: /* Solución ás consultas */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17232&amp;oldid=prev"/>
		<updated>2021-11-15T12:37:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Solución ás consultas&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 12:37 15 nov 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Línea 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Solución ás consultas =&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Solución ás consultas =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;&amp;quot; &amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Consulta 1: Obtener todos los datos de los empleados&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Consulta 1: Obtener todos los datos de los empleados&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT * FROM emp;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT * FROM emp;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l255&quot; &gt;Línea 255:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Línea 255:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Consulta 80: Obten las localidades que no tienen departamentos sin empleados, en las que trabajen al menos cuatro empleados. Indica tambien el numero de empleados que trabjan en esas localidades. (Nota: una localidad que no tiene departamentos sin empleados no es lo mismo que una localidad que tiene departamentos con empleados.)&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;-- Consulta 80: Obten las localidades que no tienen departamentos sin empleados, en las que trabajen al menos cuatro empleados. Indica tambien el numero de empleados que trabjan en esas localidades. (Nota: una localidad que no tiene departamentos sin empleados no es lo mismo que una localidad que tiene departamentos con empleados.)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT loc, COUNT(DISTINCT empno) AS EMPLEADOS FROM emp e left join dept d ON e.deptno = d.deptno GROUP BY loc, e.deptno HAVING COUNT(DISTINCT empno) &amp;gt;= 4;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT loc, COUNT(DISTINCT empno) AS EMPLEADOS FROM emp e left join dept d ON e.deptno = d.deptno GROUP BY loc, e.deptno HAVING COUNT(DISTINCT empno) &amp;gt;= 4;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joselv</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17230&amp;oldid=prev</id>
		<title>Joselv: Página creada con «= Solución ás consultas =  -- Consulta 1: Obtener todos los datos de los empleados SELECT * FROM emp;  -- Conculta 2: Obtener todos los datos de todos los departamentos S…»</title>
		<link rel="alternate" type="text/html" href="https://wiki.cifprodolfoucha.es/index.php?title=Soluci%C3%B3n_%C3%A1_Pr%C3%A1ctica_DML_sobre_Employees_Sample_Database&amp;diff=17230&amp;oldid=prev"/>
		<updated>2021-11-15T12:35:03Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «= Solución ás consultas =  -- Consulta 1: Obtener todos los datos de los empleados SELECT * FROM emp;  -- Conculta 2: Obtener todos los datos de todos los departamentos S…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Solución ás consultas =&lt;br /&gt;
&lt;br /&gt;
-- Consulta 1: Obtener todos los datos de los empleados&lt;br /&gt;
SELECT * FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Conculta 2: Obtener todos los datos de todos los departamentos&lt;br /&gt;
SELECT * FROM dept;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 3: Obtener todos los datos de los administrativos (su trabajo es, en ingles, &amp;#039;CLERK&amp;#039;)&lt;br /&gt;
SELECT * FROM emp WHERE job = &amp;#039;CLERK&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 4: Idem, pero ordenado por el nombre&lt;br /&gt;
SELECT * FROM emp WHERE job = &amp;#039;CLERK&amp;#039; ORDER BY ename;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 5: Obten el mismo resultado de la pregunta anterior, preo modificando la sentencia SQL&lt;br /&gt;
SELECT * FROM emp WHERE job IN (&amp;#039;CLERK&amp;#039;) ORDER BY ename;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 6: Obten el numero, nombre y salario de los empleados&lt;br /&gt;
SELECT empno, ename, sal FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 7: Lista los nombres de todos los departamentos&lt;br /&gt;
SELECT dname FROM dept;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 8: Idem, pero ordenandolos por nombre&lt;br /&gt;
SELECT dname FROM dept ORDER BY dname;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 9: Idem, pero ordenandolo por la ciudad (no se debe seleccionar la ciudad en el resultado)&lt;br /&gt;
SELECT dname FROM dept ORDER BY loc;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 10: Idem, pero el resultado debe mostrarse ordenado por la ciudad en orden inverso&lt;br /&gt;
SELECT dname FROM dept ORDER BY loc DESC;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 11: Obtener el nombre y empleo de todos los empleados, ordenado por salario&lt;br /&gt;
SELECT ename, job FROM emp ORDER BY sal;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 12: Obtener el nombre y empleo de todos los empleados, ordenado primero por su trabajo y luego por su salario&lt;br /&gt;
SELECT ename, job FROM emp ORDER BY job, sal;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 13: Idem, pero ordenando inversamente por empleo y normalmente por salario&lt;br /&gt;
SELECT ename, job FROM emp ORDER BY job DESC, sal;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 14: Obten los salarios y las comisiones de los empleados del departamento 30&lt;br /&gt;
SELECT sal, comm FROM emp WHERE deptno = 30;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 15: Idem, pero ordenado por comision&lt;br /&gt;
SELECT sal, comm FROM emp WHERE deptno = 30 ORDER BY comm;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 16: (a) Obten las comisiones de todos los empleados&lt;br /&gt;
SELECT comm FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 16: (b) Obten las comisiones de los empleados de forma que no se repitan&lt;br /&gt;
SELECT DISTINCT comm FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 17: Obten los distintos pares (empleado, comision)&lt;br /&gt;
SELECT DISTINCT ename, comm FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 18: Obten los nombres de los empleados y sus salarios, de forma que no se repitan filas&lt;br /&gt;
SELECT DISTINCT ename, sal FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 19: Obten las comisiones de los empleados y sus numeros de departamento, de forma que no se repitan filas&lt;br /&gt;
SELECT DISTINCT comm, deptno FROM emp WHERE comm IS NOT NULL;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 20: Obten los nuevos salarios de los empleados del departamento 30, que resultarian de sumar a su salario una gratifiacion de 1000. Muestra tambien los nombres de los empleados&lt;br /&gt;
SELECT ename, sal+1000 FROM emp WHERE deptno = 30;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 21: Lo mismo que la anterior, pero mostrando tambien su salario original, y haz que la columna que almacena el nuevo salario se denomine NUEVO_SALARIO&lt;br /&gt;
SELECT ename, sal, sal+1000 AS NUEVO_SALARIO FROM emp WHERE deptno = 30;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 22: Halla los empleados que tienen una comision superior a la mitad de su salario&lt;br /&gt;
SELECT ename FROM emp WHERE comm  &amp;gt; sal/2;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 23: Halla los empleados cuya comision sea desconocida o menor o igual que el 25% de su salario&lt;br /&gt;
SELECT ename FROM emp WHERE comm IS NULL OR comm &amp;lt;= sal * 0.25;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 24: Obten una lista de nombres de empleados y sus salarios, de forma que en la salida aparezca en todas las filas &amp;quot;Nombre:&amp;quot; y &amp;quot;Salario:&amp;quot; antes del respectivo campo. Hazlo de forma que selecciones exactamente 3 expresiones&lt;br /&gt;
SELECT &amp;#039;Nombre:&amp;#039;||ename,&amp;#039;Salario:&amp;#039;,sal FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 25: Hallar el codigo, salario y comision de los empleados cuyo codigo sea mayor que 7500&lt;br /&gt;
SELECT empno, sal, comm FROM emp where empno &amp;gt; 7500;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 26: Obten todos los datos de los empleados que esten (considerando una ordenacion ASCII por nombre) a partir de la J, inclusive&lt;br /&gt;
SELECT * FROM emp WHERE ename &amp;gt;= &amp;#039;J&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 27: Obten el salario, comision y salario total (salario+comision) de los empleados con comision, ordenando el resultado por numero de empleado&lt;br /&gt;
SELECT sal, comm, sal+comm FROM emp WHERE comm &amp;gt; 0 ORDER BY empno;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 28: Lista la misma informacion, pero para los empleados que no tienen comision&lt;br /&gt;
SELECT sal, comm, sal+comm FROM emp WHERE comm = 0 ORDER BY empno;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 29: Muestra el nombre de los empleados que, teniendo un salario superior a 1000, tengan como jefe al empleado cuyo codigo es 7698&lt;br /&gt;
SELECT ename FROM emp WHERE sal &amp;gt; 1000 AND mgr = 7698;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 30: Halla el conjunto complementario del resultado del ejercicio anterior&lt;br /&gt;
SELECT ename FROM emp WHERE sal &amp;lt;= 1000 OR mgr &amp;lt;&amp;gt; 7698;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 31: Indica para cada empleado el porcentaje que supone su comision sobre su salario, ordenando el resultado por el nombre del mismo&lt;br /&gt;
SELECT ename,comm/(sal+comm)*100 FROM emp ORDER BY ename;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 32: Hallar los empleados del departamento 10 cuyo nombre no contiene la cadena LA&lt;br /&gt;
SELECT ename FROM emp WHERE deptno = 10 AND ename NOT LIKE &amp;#039;%LA%&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 33: Obten los empleados que no son supervisados por ningun otro&lt;br /&gt;
SELECT ename FROM emp WHERE mgr IS NULL;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 34: Obten los nombres de los departamentos que no sean Ventas (SALES) ni investigacion (RESEARCH). Ordena el resultado por la localidad  del departamento&lt;br /&gt;
SELECT dname FROM dept WHERE dname NOT IN (&amp;#039;SALES&amp;#039;, &amp;#039;RESEARCH&amp;#039;) ORDER BY loc;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 35: Deseamos conocer el nombre de los empleados y el codigo del departamento de los administrativos (CLERK) que no trabajan en el departamento 10, y cuyo salario es superior a 800, ordenado por fecha de contratacion&lt;br /&gt;
SELECT ename, deptno FROM emp WHERE job = &amp;#039;CLERK&amp;#039; AND deptno &amp;lt;&amp;gt; 10 AND sal &amp;gt; 800 ORDER BY hiredate;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 36: Para los empleados que tengan comision, obten sus nombres y el cociente entre su salario y su comision, ordenando el resultado por nombre&lt;br /&gt;
SELECT ename, sal/comm FROM emp WHERE comm &amp;lt;&amp;gt; 0 ORDER BY ename;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 37: Lista toda la informacion sobre los empleados cuyo nombre completo tenga exactamente 5 caracteres&lt;br /&gt;
SELECT * FROM emp WHERE LENGTH(ename) = 5;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 38: Lo mismo, pero para los empleados cuyo nombre tenga al menos 5 letras&lt;br /&gt;
SELECT * FROM emp WHERE LENGTH(ename) &amp;gt;= 5;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 39: Halla los datos de los empleados que, o bien su nombre empieza por A y su salario es superior a 1000, o bien reciben comision y trabajan en el departamento 30&lt;br /&gt;
SELECT * FROM emp WHERE (ename LIKE &amp;#039;A%&amp;#039; AND sal &amp;gt; 1000 ) OR ( comm &amp;lt;&amp;gt; 0 AND deptno = 30 );&lt;br /&gt;
&lt;br /&gt;
-- Consulta 40: Halla el nombre, el salario y el sueldo total de todos los empleados, ordenando el resultado primero por salario y luego por el sueldo total. En el caso de que la comision no se conozca, el sueldo total debe reflejar solo el salario&lt;br /&gt;
SELECT ename, sal, NVL(sal+comm,sal) FROM emp ORDER BY sal, sal+comm;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 41: Obten el nombre, salario y la comision de los empleados que perciben un salario que esta entre la mitad de la comision y la propia comision&lt;br /&gt;
SELECT ename, sal, comm FROM emp WHERE sal BETWEEN comm/2 AND comm;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 42: Obten el complementario del anterior&lt;br /&gt;
SELECT ename, sal, comm FROM emp WHERE sal NOT BETWEEN comm/2 AND comm;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 43: Lista los nombres y empleos de aquellos empleados cuyo empleo acaba en MAN y cuyo nombre empieza por A&lt;br /&gt;
SELECT ename, job FROM emp WHERE job LIKE &amp;#039;%MAN&amp;#039; AND ename LIKE &amp;#039;A%&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 44: Intenta resolver la pregunta anterior con un predicado simple, es decir, de forma que en la clausula WHERE no haya conectores logicos como AND, OR, etc. Si ayuda a resolver la pregunta, se puede suponer que el nombre del empleo tiene al menos 5 letras&lt;br /&gt;
SELECT ename, sal, comm FROM emp WHERE ename||job LIKE &amp;#039;A%MAN&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 45: Halla los nombres de los empleados cuyo nombre tiene como maximo 5 caracteres&lt;br /&gt;
SELECT ename FROM emp WHERE LENGTH(ename) &amp;lt;= 5;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 46: Suponiendo que el ano proximo la subida del sueldo total de cada empleado sera del 6% y el siguiente del 7%, halla los nombres y el salario total actual, del ano proximo y del siguiente, de cada empleado. Indique ademas con SI, NO o NO SE SABE, si el empleado tiene comision. Como en la pregunta 40, si no se conoce la comision, el total se cnsidera igual al salario. Se supone qu no existen comisiones negativas&lt;br /&gt;
SELECT ename, NVL(sal+comm,sal) AS SUELDO_ACTUAL, NVL(sal+comm,sal)*0.06+NVL(sal+comm,sal) AS SUELDO_SIGUIENTE, (NVL(sal+comm,sal)*0.06+NVL(sal+comm,sal))*0.07+(NVL(sal+comm,sal)*0.06+NVL(sal+comm,sal)) AS SUELDO_EN_DOS, DECODE(comm,NULL,&amp;#039;NO SE SABE&amp;#039;,0,&amp;#039;NO&amp;#039;,&amp;#039;SI&amp;#039;) AS COMISION FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 47: Lista los nombres y fecha de contratacion de aquellos empleados que no son vendedores (SALESMAN)&lt;br /&gt;
SELECT ename, hiredate FROM emp WHERE job &amp;lt;&amp;gt; &amp;#039;SALESMAN&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 48: Obten la informacion disponible de los empleados cuyo numero es uno de los siguientes: 7844, 7900, 7521, 7782, 7934, 7678, 7369, pero que no sea uno de los siguientes: 7902, 7839, 7499 ni 7878. La sentencia no debe complicarse innecesariamente y debe dar el resultado correcto independientemente de los empleados almacenados en la base de datos&lt;br /&gt;
SELECT * FROM emp WHERE empno IN (7844,7900,7521,7782,7934,7678,7369);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 49: Ordena los empleados por su codigo de departamento, y luego de manera descendente por su numero de empleado&lt;br /&gt;
SELECT ename FROM emp ORDER BY deptno, empno DESC;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 50: Para los empleados que tengan como jefe a un empleado con codigo mayor que el suyo, obten los que reciben de salario mas de 1000 y menos de 2000, o que estan en el departamento 30&lt;br /&gt;
SELECT ename FROM emp WHERE mgr &amp;gt; empno AND ( (sal BETWEEN 1000 AND 2000) OR deptno = 30  );&lt;br /&gt;
&lt;br /&gt;
-- Consulta 51: Obten el salario mas alto de la empresa, el total destinado a comisiones y el numero de empleados&lt;br /&gt;
SELECT MAX(sal), SUM(comm), COUNT(*) FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 52: Halla los datos de los empleados cuyo salario es mayor que el del empleado con codigo 7934, ordenando por el salario&lt;br /&gt;
SELECT * FROM emp WHERE sal &amp;gt; (SELECT sal FROM emp WHERE empno = 7934) ORDER BY sal;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 53: Obten informacion en la que se reflejen los nombres, empleos y salarios tanto de los empleados que superan el salario de Allen como del propio Allen&lt;br /&gt;
SELECT ename, job, sal FROM emp WHERE sal &amp;gt; (SELECT sal FROM emp WHERE ename = &amp;#039;ALLEN&amp;#039;) OR ename = &amp;#039;ALLEN&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 54: Halla el nombre del ultimo empleado por orden alfabetico&lt;br /&gt;
SELECT MAX(ename) FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 55: Halla el salario mas alto, el mas bajo, y la diferencia entre ellos&lt;br /&gt;
SELECT MAX(sal), MIN(sal), MAX(sal)-MIN(sal) FROM emp;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 56: Sin conocer los resultados del ejercicio anterior, quienes reciben el salario mas alto y el mas bajo y a cuanto ascienden estos salarios?&lt;br /&gt;
SELECT ename, sal FROM emp WHERE sal = (SELECT MAX(sal) FROM emp) OR sal = (SELECT MIN(sal) FROM emp);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 57: Considerando empleados con salario menor de 5000, halla la media de los salarios de los departamentos cuyo salario minimo supera a 900. Muestra tambien el codigo y el nombre de los departamentos&lt;br /&gt;
select emp.deptno, dname, avg(sal) from emp join dept on emp.deptno = dept.deptno where sal&amp;lt;5000 group by emp.deptno having min(sal)&amp;gt;900;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 58: Que empleados trabajan en ciudades de mas de cinco letras? Ordena el resultado inversamente por ciudades y normalmente por los nombres de los empleados&lt;br /&gt;
SELECT emp.ename FROM emp, dept WHERE emp.deptno = dept.deptno AND LENGTH(dept.loc) &amp;gt; 5 ORDER BY dept.loc DESC, emp.ename;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 59: Halla los empleados cuyo salario supera o coincide con la media del salario de la empresa&lt;br /&gt;
SELECT ename FROM emp WHERE sal &amp;gt;= (SELECT AVG(sal) FROM emp);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 60: Obten los empleados cuyo salario supera al de sus companeros de departamento&lt;br /&gt;
SELECT ename FROM emp e WHERE sal &amp;gt; ALL ( SELECT sal FROM emp c WHERE e.deptno = c.deptno AND e.ename &amp;lt;&amp;gt; c.ename);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 61: Cuantos empleos diferentes, cuantos empleados y cuantos salarios diferentes encontramos en el departamento 30, y a cuanto asciende la suma de salarios de dicho departamento?&lt;br /&gt;
SELECT COUNT(DISTINCT job), count(DISTINCT empno), COUNT(DISTINCT sal), SUM(sal) FROM emp WHERE deptno = 30;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 62: Cuantos empleados tienen comision?&lt;br /&gt;
SELECT COUNT(*) FROM emp WHERE comm &amp;gt; 0;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 63: Cuantos empleados tiene el departamento 20?&lt;br /&gt;
SELECT COUNT(*) FROM emp WHERE deptno = 20;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 64: Halla los departamentos que tienen mas de tres empleados, y el numero de empleados de los mismos.&lt;br /&gt;
SELECT deptno, COUNT(*) FROM emp GROUP BY deptno HAVING COUNT(*) &amp;gt; 3;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 65: Obten los empleados del departamento 10 que tienen el mismo empleo que alguien del departamento de Ventas. Desconocemos el codigo de dicho departamento&lt;br /&gt;
SELECT ename FROM emp WHERE deptno = 10 AND job = ANY (SELECT job FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE dname = &amp;#039;SALES&amp;#039;) );&lt;br /&gt;
&lt;br /&gt;
-- Alternativa&lt;br /&gt;
select ename from emp where deptno = 10 and job = any (select job from emp e join dept d on e.deptno = d.deptno where dname=&amp;#039;SALES&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 66: Halla los empleados que tienen por lo menos un empleado a su mando, ordenados inversamente por nombre&lt;br /&gt;
SELECT ename FROM emp WHERE empno = ANY (SELECT mgr FROM emp) ORDER BY ename DESC;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 67: Obten informacion sobre los empleados que tienen el mismo trabajo que los empleados que trabajan en Chicago&lt;br /&gt;
SELECT * FROM emp WHERE job = ANY (SELECT job FROM emp WHERE deptno = (SELECT deptno FROM dept WHERE loc = &amp;#039;CHICAGO&amp;#039;) );&lt;br /&gt;
&lt;br /&gt;
-- Alternativa&lt;br /&gt;
select * from emp where job = any (select job from emp e join dept d on e.deptno = d.deptno where loc=&amp;#039;CHICAGO&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 68: Que empleos distintos encontramos en la empresa, y cuantos empleados desempenan cada uno de ellos?&lt;br /&gt;
SELECT job, COUNT(*) AS EMPLEADOS FROM emp GROUP BY job;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 69: Halla la suma de salarios de cada departamento&lt;br /&gt;
SELECT deptno, SUM(sal) FROM emp GROUP BY deptno;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 70: Obten todos los departamentos sin empleados&lt;br /&gt;
SELECT dname FROM dept WHERE deptno &amp;lt;&amp;gt; ALL (SELECT deptno FROM emp);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 71: Halla los empleados que no tienen a otro empleado a sus ordenes&lt;br /&gt;
SELECT ename FROM emp WHERE empno &amp;lt;&amp;gt; ALL (SELECT mgr FROM emp WHERE mgr IS NOT NULL);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 72: Cuantos empleados hay en cada departamento y cual es la media anual del salario de cada uno? Indique el nombre del departamento para clarificar el resultado&lt;br /&gt;
select d.deptno, dname, count(empno) &amp;#039;Num Empleados&amp;#039;,avg(sal) &amp;#039;Media salario&amp;#039; from emp e right join dept d on e.deptno=d.deptno group by e.deptno order by deptno;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 73: Halla los empleados del departamento 30, por orden descendiente de comision&lt;br /&gt;
SELECT ename FROM emp WHERE deptno = 30 ORDER BY comm DESC;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 74: Obten los empleados que trabajan en Dallas o New York&lt;br /&gt;
SELECT ename FROM emp WHERE deptno = ANY (SELECT deptno FROM dept WHERE loc IN (&amp;#039;DALLAS&amp;#039;,&amp;#039;NEW YORK&amp;#039;));&lt;br /&gt;
&lt;br /&gt;
-- Alternativa&lt;br /&gt;
select ename from emp e join dept d on e.deptno=d.deptno where loc in (&amp;#039;DALLAS&amp;#039;,&amp;#039;NEW YORK&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 75: Obten un listado en el que se reflejen los empleados y los nombres de sus jefes. En el listado deben aparecer todos los empleados, aunque no tengan jefe, poniendo un nulo el nombre de este&lt;br /&gt;
select e.ename as empleado, e2.ename as jefe from emp e left join emp e2 on e.empno = e2.mgr;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 76: Lista los empleados que tengan el mayor salario de su departamento, mostrando el nombre del empleado, su salario y el nombre del departamento&lt;br /&gt;
SELECT ename, sal, dname FROM emp e INNER JOIN dept d ON e.deptno = d.deptno WHERE sal = (SELECT MAX(sal) FROM emp WHERE deptno = e.deptno);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 77: Deseamos saber cuantos empleados supervisa cada jefe. Para ello, obten un listado en el que se reflejen el codigo y el nombre de cada jefe, junto al numero de empleados que surpervisa directamente. Como puede haber empleados sin jefe, para estos se indicara solo el numero de ellos, y los valores restantes (codigo y nombre del jefe) se dejaran como nulos&lt;br /&gt;
SELECT j.empno, j.ename, COUNT(*) FROM emp e INNER JOIN emp j ON e.mgr = j.empno GROUP BY j.empno, j.ename UNION SELECT null, null, COUNT(*) FROM emp WHERE mgr IS NULL;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 78: Hallar el departamento cuya suma de salarios sea la mas alta, mostrando esta suma de salarios y el nombre del departamento&lt;br /&gt;
SELECT dname, SUM(sal) AS suma  FROM emp INNER JOIN dept ON emp.deptno = dept.deptno GROUP BY dname HAVING SUM(sal) = (SELECT MAX(SUM(sal)) FROM emp GROUP BY deptno);&lt;br /&gt;
&lt;br /&gt;
-- Consulta 79: Obten los datos de los empleados que cobren los dos mayores salarios de la empresa. (Nota: Procura hacer la consulta de forma que sea facil obtener los empleados de los N mayores salarios)&lt;br /&gt;
SELECT * FROM emp e WHERE ( (SELECT COUNT(DISTINCT sal) FROM emp WHERE sal &amp;gt; e.sal) &amp;lt; 2 );&lt;br /&gt;
&lt;br /&gt;
-- Alternativa&lt;br /&gt;
select * from emp order by sal desc limit 2;&lt;br /&gt;
&lt;br /&gt;
-- Consulta 80: Obten las localidades que no tienen departamentos sin empleados, en las que trabajen al menos cuatro empleados. Indica tambien el numero de empleados que trabjan en esas localidades. (Nota: una localidad que no tiene departamentos sin empleados no es lo mismo que una localidad que tiene departamentos con empleados.)&lt;br /&gt;
SELECT loc, COUNT(DISTINCT empno) AS EMPLEADOS FROM emp e left join dept d ON e.deptno = d.deptno GROUP BY loc, e.deptno HAVING COUNT(DISTINCT empno) &amp;gt;= 4;&lt;/div&gt;</summary>
		<author><name>Joselv</name></author>
		
	</entry>
</feed>