Translate

martes, 15 de octubre de 2013

CONSULTAS SQL BASICAS



1)MOSTRAR EL APELLIDO Y CODIGO DEPARTAMENTO DE LOS EMPLEADOS  PERTENECIENTES A LOS DEPARTAMENTOS 20 o 50 ORDENAR POR APELLLIDO
   
    SELECT LAST_NAME,DEPARTMENT_ID
    FROM hr.EMPLOYEES
    WHERE DEPARTMENT_ID IN(20,50)
    ORDER BY LAST_NAME;

2)MOSTRAR EL APELLIDO BAJO EL ALIAS Empleado y sueldo bajo el alias Salario mensual de los empleados pertenecientes a los departamentos 20 o50 que ganen entre 5000 y 12000

    SELECT LAST_NAME AS"EMPLEADO",SALARY AS"SALARIO MENSUAL"
    FROM HR.EMPLOYEES
    WHERE DEPARTMENT_ID IN(20,50) AND SALARY BETWEEN 5000 AND 12000;
   
3) MOSTRAR EL APELLIDO Y FECHA DE CONTRATO DELOS EMPLEADOS CONTRATADOS EL AÑO 1994 o 2004

    SELECT LAST_NAME,HIRE_DATE
    FROM HR.EMPLOYEES
    WHERE TO_CHAR(HIRE_DATE,'YYYY')IN(1994,2004); 

4) MOSTRAR EL APELLIDO COD DE OFICIO DE LOS EMPLEADOS SIN JEFE ASIGNADO

    SELECT LAST_NAME,JOB_ID
    FROM HR.EMPLOYEES
    WHERE MANAGER_ID IS NULL;  

5) MOSTRAR EL APELLIDO, SUELDO Y % COMISION DE LOS EMPLEADOS  QUE COBRAN COMISION. ORDENAR POR SALARIO Y COMISION, DE FORMA QUE LOS MAS ALTOS SALGAN PRIMERO

    SELECT LAST_NAME,SALARY,COMMISSION_PCT
    FROM HR.EMPLOYEES
    WHERE COMMISSION_PCT IS NOT NULL
    ORDER BY SALARY,COMMISSION_PCT;

  
6) MOSTRAR EL APELLLIDO DE LOS EMPLEADOS QUE   TENGAN UNA a y UNA e EN EL APELLIDO

    SELECT LAST_NAME
    FROM HR.EMPLOYEES
    WHERE LAST_NAME LIKE '%a%'AND LAST_NAME LIKE'%e%';

7) MOSTRAR LOS APELLIDOS DE LOS EMPLEADOS REEMPLAZANDO LA LETRA a POR UN 1

    SELECT REPLACE(UPPER(LAST_NAME),'A',1)
    FROM HR.EMPLOYEES;
   
   
8) MOSTRAR EL APELLIDO FECHA CONTRATO Y DIAS DE LA SEMANA  EN QUE FUERON CONTRATADOS LOS EMPLEADOS ORDENANDO POR DIA De LA SEMANA, DE FORMA QUE QUEDEN ORDENANDOS POR LUNES MARTES MIERCOLES JUEVES VIERNES SABADO DOMINGO

    SELECT LAST_NAME,HIRE_DATE,TO_CHAR(HIRE_DATE,'DAY') DIA_CONTRATACION
    FROM HR.EMPLOYEES
    ORDER BY TO_CHAR(HIRE_DATE,'DAY');
    
9) MOSTRAR EL APELLIDO Y COMISION DE LOS EMPLEADOS EN EL CASO DE QUE NO GANE COMISION, MOSTRAR LA FRASE "sin comision"
   
    SELECT LAST_NAME,COMMISSION_PCT,DECODE(COMMISSION_PCT,NULL,'SIN COMISSIONES')AS"COMISION"
    FROM HR.EMPLOYEES;


10) MOSTRAR NOMBRE COMPLETO DE LOS TRABAJADORES OFICIO NOMBRE DEPARTAMENTO Y CIUDAD DE AQUELLOS QUE NOS SON PROGRAMADORES "programmer"

    SELECT CONCAT(FIRST_NAME,LAST_NAME)AS"NOMBRE COMPLETO",JOB_TITLE,DEPARTMENT_NAME,CITY
    FROM HR.EMPLOYEES E,HR.JOBS J,HR.DEPARTMENTS D,HR.LOCATIONS L
    WHERE E.DEPARTMENT_ID=D.DEPARTMENT_ID AND D.LOCATION_ID=L.LOCATION_ID AND E.JOB_ID=J.JOB_ID
    AND not(JOB_TITLE LIKE('Programmer'));
        
11) CALCULAR EL NUMERO DE EMPLEADOS CONTRATADOS POR AÑO Y MES ORDENAR POR AÑO

    SELECT TO_CHAR(HIRE_DATE,'YYYY')AS"AÑO",TO_CHAR(HIRE_DATE,'MONTH')AS"MES",COUNT(EMPLOYEE_ID)AS"TOTAL EMPLEADOS"
    FROM HR.EMPLOYEES
    GROUP BY TO_CHAR(HIRE_DATE,'YYYY'),TO_CHAR(HIRE_DATE,'MONTH')
    ORDER BY TO_CHAR(HIRE_DATE,'YYYY'),TO_CHAR(HIRE_DATE,'MONTH');

12) MOSTRAR EL NOMBRE DEL EMPLEADO MAS SU DEPARTAMENTO

    SELECT FIRST_NAME,DEPARTMENT_NAME
    from HR.EMPLOYEES E,HR.DEPARTMENTS D
    WHERE E.DEPARTMENT_ID=D.DEPARTMENT_ID;

13) QUE CODIGO DE OFICIO TIENE UN SOLO EMPLEADO

    SELECT JOB_ID CODIGO,COUNT(EMPLOYEES.EMPLOYEE_ID) CANTIDAD
    FROM HR.EMPLOYEES
    GROUP BY JOB_ID
    HAVING COUNT(JOB_ID)=1;

14) MOSTRAR EL NOMBRE Y APELLIDO DE EMPLEADO EL NOMBRE DE SU DEPARTAMENTO Y SU LOCALIZACION DEL DEPARTAMENTO REALIZARLO A BASE DE JOINS

    SELECT FIRST_NAME,LAST_NAME,DEPARTMENT_NAME,CITY
    FROM HR.EMPLOYEES E,HR.DEPARTMENTS D,HR.LOCATIONS L
    WHERE E.DEPARTMENT_ID=D.DEPARTMENT_ID AND
        D.LOCATION_ID=L.LOCATION_ID;               
       
       
    SELECT FIRST_NAME,LAST_NAME,DEPARTMENT_NAME,CITY
    FROM HR.EMPLOYEES E
    JOIN HR.DEPARTMENTS D ON
    E.DEPARTMENT_ID=D.DEPARTMENT_ID JOIN HR.LOCATIONS L ON
        D.LOCATION_ID=L.LOCATION_ID; 



           
                         "CONSULTAS REALIZADAS EN EL ESQUEMA HR DE ORACLE"