Un ejemplo sencillo: si queremos listar el nombre del empleado, el id del departamento, y el nombre del departamento al que pertenece el empleado la query (consulta) sería:

SELECT A.nombre AS empleado

,A.dept_id

,B.nombre AS depto

FROM s_emp A

,s_dept B

WHERE A.id = B.region_id

Ejercicios :

Seleccionar el No. depto, apellido, salario y cargo para los empleados que ganen mas de 100 y el departamento este en 41, 10 y 50

select dept_id

,nombre

,salario

,cargo

from s_emp

where salario > 100

and dept_id IN (41,10,50)

seleccionar el apellido, del empleado, id del depto, y el nombre del depto.

select a.nombre AS empleado

,b.id

,b.nombre AS depto

from s_emp a

,s_dept b

where a.id = b.dept_id

Seleccionar el apellido del empleado, no del depto, el nombre deldepto para los depto que esten entre 20 y 50 sin incluirlos.

select a.nombre AS empleado,

b.id,

b.nombre AS depto

from s_emp a, s_dept b

where a.id = b.dept_id

and b.id > 20 and b.id < 50

seleccionar el nombre del empleado no. del depto, nombre del depto, para los deptos que comiencen con 4 y ordenados el numero de depto y nombre del empleado desc

select a.nombre AS empleado,

b.id,

b.nombre AS depto

from s_emp a,

s_dept b

where a.id=b.dept_id

and ALLTRIM(STR(b.id)) like '4%'

order by a.nombre asc,

b.id

Seleccionar el nombre del cliente para aquellos empleados que el no del depto sean 30, 40, 41, 42 y el ( salario sea mayor que 1000 o el depto sea 50 )

select a.nombre AS cliente,

b.nombre AS empleado,

b.salario,

b.id,

b.dept_id

from s_customer a,

s_emp b

where a.emp_id=b.id

and b.dept_id IN (30,40,41,42)

and (b.salario > 1000 or b.dept_id='50')

Otra soluccion:

select a.nombre

from s_customer a

where a.emp_id IN (Select id

from s_emp

where dept_id in (30, 40,41,42)

and (salario > 1000 or dept_id=50 )

Seleccionar el nombre del cliente, nombre de region y el salario para todos los empleados que el salario sean mayor que 100

select a.nombre AS empleado,

b.nombre AS depto,

a.salario

from s_emp a,

s_dept b

where a.dept_id=b.id

and a.salario > 100

Funciones de grupos

salarios minimos y maximos de los empleados

select max(salario) sal_max,

min(salario) sal_min

from s_emp

Suma, maximo, minimo salario por Departamento

select dept_id,

sum(salario),

max(salario),

min(salario)

from s_emp

group by dept_id

*---

select dept_id,

count(dept_id)

from s_emp

group by dept_id

having dept_id > 20

*---

select dept_id,

sum(salario)

from s_emp

group by dept_id

having sum(salario) between 2000 and 4000

*---

select avg(salario),

min(salario),

max(salario),

sum(salario)

from s_emp

where UPPER(title) like 'SALES%'

*---

select count(nombre),

dept_id

from s_emp

where dept_id=31

group by dept_id

SELECT COUNT(ID),

DEPT_ID

FROM S_EMP

GROUP BY DEPT_ID

 SELECT COUNT(ID),

CREDIT_RATING

FROM S_CUSTOMER

GROUP BY CREDIT_RATING

*----

SELECT SUM(SALARIO), CARGO

FROM S_EMP

WHERE upper(TITLE) NOT LIKE 'VP%'

GROUP BY CARGO

*----

SELECT SUM(SALARIO), TITLE

FROM S_EMP

GROUP BY TITLE

*----

SELECT TITLE, SUM(SALARIO)

FROM S_EMP

WHERE UPPER(TITLE) NOT LIKE 'VP%'

GROUP BY TITLE

HAVING SUM(SALARIO)> 5000

*----

PAGINA PRINCIPAL