View difference between Paste ID: zTpv6nzm and JM9hNE5N
SHOW: | | - or go back to the newest paste.
1
-- 1.- Seleccionar los distintos departamentos que xisten en la tabla EMP.
2
3
Select distinct deptno from emp;
4
5
6
7
8
9
-- 2.- Calcular el salario anual a percibir por cada empleado.
10
11
Select eno, sal*52 from emp 
12
13
14
15
16
17
-- 3.- Seleccionar aquellos empleados que hayan entrando antes del 1/1/14
18
19
Select eno, hiredate from emp where hiredate<'2014-01-01'   --Fechas van entre comillas simples.
20
21
22
23
24
25
-- 4.- Seleccionar los empleados cuyo salario sea superior al de 'ADAMS'
26
27
Select eno from emp where sal>(Select sal from emp where ename like 'adams' limit 1)
28
29
30
31
32
33
-- 5.- Encontrar a los empleados cuyo jefe es 'BLAKE'
34
35
36
Select eno from emp where mgr = (Select eno from emp where ename LIKE 'blake')
37
38
39
40
41
42
-- 6.- Seleccionar aquellos empleados que tienen comision.
43
44
Select eno, ename from emp where comm <> 0 OR comm <> null
45
46
47
48
49
50
-- 7.- Seleccionar aquellos empleados que trabajen en el departamento 10 o en el 20.
51
52
Select eno, ename from emp where deptno = 20 OR deptno = 10
53
54
55
56
57
58
59
-- 8.- Seleccionar el nombre de los empleados que ganen más que todos los salesman. No utilizar MAX().
60
61
Select eno from emp where sal>(Select sum(sal) from emp where job='salesman')
62
63
64
65
66
67
-- 9.- Seleccionar aquellos empleados cuyo nombre tenga como segunda letra una 'D'.
68
69
Select eno,ename from emp where ename LIKE '_D%'
70
71
72
73
74
75
-- 10.- Calcular el número de emeplados que tienen comisión y a media.
76
77
Select COUNT(*), AVG(comm) from emp where comm <> null OR comm <> 0
78
79
80
81
82
83
-- 11.- Encontrar el salario más alto, el más bajo y la diferencia entre ambos.
84
Select MAX(sal) as maximo, MIN(sal) as minimo, MAX(sal)-MIN(sal) as dif from emp
85
86
87
88
89
90
91
92
-- 12.- Hallar el número de trabajos distintos que existen en el departamento 30
93
94
Select distinct count(job) from emp where deptno=30
95
96
97
98
99
100
101
-- 13.- Seleccionar el salario minimo, maximo y medio de los empleados agrupados por empleo, 
102
-- pero solo aquellos cuya media sea superior a 4000
103
104
Select job,  max(sal) as maximo, min(sal) as minimo, avg(sal) as media from emp group by job having avg(sal)>4000
105
106
107
108
109
110
111
112
-- 14.- El salario medio y minimo de cada puesto, mostrando en el resultado aquellos cuyo salaro medio este
113
-- por encima de 1500.
114
115
select job, avg(sal), min(sal) from emp group by job having avg(sal)>1500
116
117
118
119
120
121
122
-- 15.- Mostrar el nombre del empleado, su trabajo, el nombre y el codigo del departamento en el que trabaja.
123
124
Select ename, job, dept.dname, dept.deptno from emp, dept where dept.deptno = emp.deptno
125
126
127
128
129
130
131
-- 16.- Nombres de los empleados que trabajan en Chicago. Utiliza EXISTS
132
133
Select ename from emp where EXISTS(
134
Select deptno from dept where loc='Chicago' AND dept.deptno=emp.deptno )
135
136
137
138
139
140
141
142
-- 17.- Visualiza el número de los departamentos que tengan más de tres empleados asignados.
143
144
Select distinct deptno from emp where count(deptno)>  3
145
146
147
148
149
150
151
-- 18.- Seleccionar el nombe y fecha de ingreso del empleado que lleva más tiempo.
152
153
Select ename, hiredate from emp  order by hiredate asc limit 1
154
155
156
157
158
159
160
-- 19-. Encontrar el ename, dname, job y sal de los empleados que trabajen en el mismo departamento que 'Turner'
161
-- y su salario sea mayor que la media del salario del departamento 10.
162
163
Select ename, dept.dname, job, sal from emp, dept 
164
165
where emp.deptno= (select deptno from emp where ename= 'Turner')
166
167
AND sal>(select avg(sal) from emp where deptno= 10) 
168
AND emp.deptno=dept.deptno
169
170
171
172
173
174
-- 20.- Seleccionar el nombre de cada empleado, y el número y nombre de su jefe.
175
176
SELECT emp.ename, A.ename, A.eno 
177
from emp, 
178
(select ename, eno from emp) A   -- Hacemos una vista de emp llamada A para usarla como tabla adicional.
179
WHERE emp.mgr=A.eno
180
181
182
183
184
185
-- 21.- Seleccionar aquellos empleados que tienen comisión.
186
187
Select eno, ename from emp where comm <> 0 OR comm <> null