0% found this document useful (0 votes)
8 views5 pages

Taller 1 SQL

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views5 pages

Taller 1 SQL

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

--------------------------------------------- TALLER 1.

1
-------------------------------------------- EJERCICIO #1
SELECT NLS_TERRITORY, CREDIT_LIMIT
FROM OE.CUSTOMERS
GROUP BY NLS_TERRITORY, CREDIT_LIMIT;

SELECT COUNT(*) AS CONTEO, NLS_TERRITORY


FROM OE.CUSTOMERS
GROUP BY NLS_TERRITORY;

BEGIN
UPDATE OE.CUSTOMERS
SET CREDIT_LIMIT = CREDIT_LIMIT * 1.10
WHERE NLS_TERRITORY = 'INDIA';

UPDATE OE.CUSTOMERS
SET CREDIT_LIMIT = CREDIT_LIMIT * 1.15
WHERE NLS_TERRITORY = 'JAPAN';

UPDATE OE.CUSTOMERS
SET CREDIT_LIMIT = CREDIT_LIMIT * 1.20
WHERE NLS_TERRITORY = 'THAILAND';

UPDATE OE.CUSTOMERS
SET CREDIT_LIMIT = CREDIT_LIMIT * 1.20
WHERE NLS_TERRITORY = 'CHINA';
END;

SELECT CUSTOMER_ID, NLS_TERRITORY, CREDIT_LIMIT,


CREDIT_LIMIT *
CASE
WHEN NLS_TERRITORY = 'INDIA' THEN 1.10
WHEN NLS_TERRITORY = 'JAPAN' THEN 1.15
WHEN NLS_TERRITORY IN ('THAILAND', 'CHINA') THEN 1.20
ELSE 1
END AS NUEVO_CREDITO
FROM OE.CUSTOMERS;

-------------------------------------EJERCICIO #2

SELECT CUSTOMER_ID,CUST_FIRST_NAME,CUST_LAST_NAME,
DECODE(GENDER , 'M','MASCULINO', 'F',
'FEMENINO', 'DESCONOCIDO') AS GENDER_CUST
FROM OE.CUSTOMERS;

SELECT
CUST_FIRST_NAME,
CASE
WHEN GENDER = 'M' THEN 'MASCULINO'
WHEN GENDER = 'F' THEN 'FEMENINO'
ELSE 'DESCONOCIDO' -- Esto es por si hay un valor no esperado
END AS GENERO
FROM OE.CUSTOMERS;

------------------------------------ EJERCICIO #3

SELECT COUNT (*) AS PERSONAS, GENDER


FROM OE.CUSTOMERS
GROUP BY GENDER;

------------------------------------ EJERCICIO #4

SELECT COUNT(*) CANTIDAD_PRODUCTO, C.CATEGORY_ID , CATEGORY_NAME


FROM OE.CATEGORIES_TAB C
JOIN OE.PRODUCT_INFORMATION P
ON C.CATEGORY_ID = P.CATEGORY_ID
GROUP BY C.CATEGORY_ID, CATEGORY_NAME;

------------------------------------- EJERCICIO #5

SELECT AVG(CREDIT_LIMIT), NLS_TERRITORY


FROM OE.CUSTOMERS
GROUP BY NLS_TERRITORY
ORDER BY NLS_TERRITORY;

-----------------------------------EJERCICIO #6

SELECT ROUND (AVG(CREDIT_LIMIT),2) AS CREDITO_PROMEDIO, NLS_TERRITORY


FROM OE.CUSTOMERS
HAVING AVG(CREDIT_LIMIT )> 000
GROUP BY NLS_TERRITORY
ORDER BY NLS_TERRITORY;

---------------------------------- EJERCICIO#7

SELECT TO_CHAR(DATE_OF_BIRTH, 'MM') AS MES,


TO_CHAR(DATE_OF_BIRTH, 'DD') AS DIA,
COUNT(*) AS CANTIDAD_CLIENTES
FROM OE.CUSTOMERS
WHERE TO_CHAR(DATE_OF_BIRTH, 'MM-DD') = TO_CHAR(SYSDATE, 'MM-DD')
GROUP BY TO_CHAR(DATE_OF_BIRTH, 'MM'),
TO_CHAR(DATE_OF_BIRTH, 'DD')
ORDER BY MES, DIA;

-------------------------------- EJERCICIO #8

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME


FROM OE.ORDERS O JOIN HR.EMPLOYEES E
ON O.SALES_REP_ID = E.EMPLOYEE_ID
GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME;

----------------------------------EJERCICIO #9

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME,


COUNT (*) CANTIDAD_CLIENTES
FROM OE.ORDERS O JOIN HR.EMPLOYEES E
ON O.SALES_REP_ID = E.EMPLOYEE_ID
GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME;

-----------------------------------EJERCICIO #10

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME


FROM OE.ORDERS O JOIN HR.EMPLOYEES E
ON O.SALES_REP_ID = E.EMPLOYEE_ID
JOIN HR.DEPARTMENTS D
ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME;

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME


FROM OE.ORDERS O,HR.EMPLOYEES E, HR.DEPARTMENTS D
WHERE O.SALES_REP_ID = E.EMPLOYEE_ID AND E.DEPARTMENT_ID = D.DEPARTMENT_ID
GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME;

----------------------------------EJERCICIO #11

SELECT P.PRODUCT_NAME, C.CATEGORY_NAME


FROM OE.CATEGORIES_TAB C
JOIN OE.PRODUCT_INFORMATION P
ON C.CATEGORY_ID = P.CATEGORY_ID
GROUP BY P.PRODUCT_NAME, CATEGORY_NAME;

SELECT P.PRODUCT_NAME, C.CATEGORY_NAME


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID
GROUP BY P.PRODUCT_NAME, CATEGORY_NAME;

-----------------------------------EJERCICIO #12

SELECT E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME,J.JOB_TITLE


FROM HR.EMPLOYEES E, HR.JOBS J, HR.DEPARTMENTS D, OE.ORDERS O
WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID AND
E.JOB_ID = J.JOB_ID AND
E.EMPLOYEE_ID = O.SALES_REP_ID
AND TO_CHAR(O.ORDER_DATE, 'MM') = TO_CHAR(SYSDATE, 'MM')
GROUP BY E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME,J.JOB_TITLE;

SELECT ORDER_DATE
FROM OE.ORDERS
WHERE TO_CHAR(ORDER_DATE,'MM') = TO_CHAR(SYSDATE, 'MM');

SELECT
E.FIRST_NAME,
E.LAST_NAME,
D.DEPARTMENT_NAME,
J.JOB_TITLE
FROM
HR.EMPLOYEES E
JOIN HR.JOBS J ON E.JOB_ID = J.JOB_ID
JOIN HR.DEPARTMENTS D ON E.DEPARTMENT_ID = D.DEPARTMENT_ID
JOIN OE.ORDERS O ON E.EMPLOYEE_ID = O.SALES_REP_ID
WHERE
TO_CHAR(O.ORDER_DATE, 'MM') = TO_CHAR(SYSDATE, 'MM')
GROUP BY
E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME, J.JOB_TITLE
ORDER BY
D.DEPARTMENT_NAME, E.LAST_NAME;

--------------------------TALLER 1.2
--------------------------EJERCICIO #1.2.1

SELECT PRODUCT_ID, PRODUCT_NAME,LIST_PRICE, MIN_PRICE ,


LIST_PRICE*1.15 AS NUEVO_PRECIO, MIN_PRICE*1.15 AS NUEVO_PRECIO_MINIMO
FROM OE.PRODUCT_INFORMATION;

--------------------------EJERCICIO #1.2.2

SELECT C.CATEGORY_ID, C.CATEGORY_NAME


FROM OE.CATEGORIES_TAB C JOIN OE.PRODUCT_INFORMATION P
ON C.CATEGORY_ID = P.CATEGORY_ID
GROUP BY C.CATEGORY_ID, C.CATEGORY_NAME
ORDER BY C.CATEGORY_ID;

SELECT CATEGORY_ID, CATEGORY_NAME


FROM OE.CATEGORIES_TAB
WHERE CATEGORY_ID IN (SELECT C.CATEGORY_ID
FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID)
GROUP BY CATEGORY_ID , CATEGORY_NAME
ORDER BY CATEGORY_ID;

SELECT *
FROM(

SELECT C.CATEGORY_ID, C.CATEGORY_NAME


FROM OE.CATEGORIES_TAB C JOIN OE.PRODUCT_INFORMATION P
ON C.CATEGORY_ID = P.CATEGORY_ID)
GROUP BY CATEGORY_ID, CATEGORY_NAME
ORDER BY CATEGORY_ID;

WITH G AS (SELECT C.CATEGORY_ID


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID)
SELECT G.CATEGORY_ID , C.CATEGORY_NAME
FROM G, OE.CATEGORIES_TAB C
WHERE G.CATEGORY_ID = C.CATEGORY_ID
GROUP BY G.CATEGORY_ID , C.CATEGORY_NAME
ORDER BY G.CATEGORY_ID;

--------------------------------EJERCICIO #1.2.3

SELECT PRODUCT_NAME,LIST_PRICE, MIN_PRICE,


LIST_PRICE*CASE
WHEN CATEGORY_NAME = 'software2' THEN 1.15
ELSE 1
END AS NEW_LIST_PRICE,
MIN_PRICE* CASE
WHEN CATEGORY_NAME = 'software2' THEN 1.15
ELSE 1
END AS NEW_MIN_PRICE
FROM OE.PRODUCT_INFORMATION P, OE.CATEGORIES_TAB C
WHERE P.CATEGORY_ID = C.CATEGORY_ID AND CATEGORY_NAME = 'software2';

--------------------------------EJERCICIO #1.2.4

SELECT P.PRODUCT_NAME ||'-'|| C.CATEGORY_NAME


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID;

-------------------------------EJERCICIO #1.2.5

SELECT C.CATEGORY_ID, C.CATEGORY_NAME, COUNT (*) AS CANTIDAD_PRODUCTO


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID AND C.CATEGORY_NAME = 'hardware8'
GROUP BY C.CATEGORY_ID, C.CATEGORY_NAME
ORDER BY CANTIDAD_PRODUCTO;

SELECT *
FROM (SELECT C.CATEGORY_ID, COUNT (*) AS CANTIDAD_PRODUCTO, C.CATEGORY_NAME
FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID C.CATEGORY_NAME = 'hardware8'
GROUP BY C.CATEGORY_ID, C.CATEGORY_NAME)
ORDER BY CATEGORY_ID;

-----------------------------EJERCICIO #1.2.6

SELECT COUNT(*) AS CANTIDAD_PRODUCTO


FROM OE.PRODUCT_INFORMATION;

----------------------------EJERCICIO #1.2.7

SELECT P.PRODUCT_NAME , C.CATEGORY_ID


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID IN (21,14,17)
ORDER BY CATEGORY_ID;

-----------------------------EJERCICIO #1.2.8

SELECT C.CATEGORY_ID, C.CATEGORY_NAME, COUNT (*) AS CANTIDAD_PRODUCTO


FROM OE.CATEGORIES_TAB C, OE.PRODUCT_INFORMATION P
WHERE C.CATEGORY_ID = P.CATEGORY_ID
GROUP BY C.CATEGORY_ID, C.CATEGORY_NAME
ORDER BY CANTIDAD_PRODUCTO DESC;

-----------------------------EJERCICIO #1.2.9

SELECT C.CATEGORY_ID, C.CATEGORY_NAME, COUNT (*) AS CANTIDAD_PRODUCTO


FROM OE.CATEGORIES_TAB C JOIN OE.PRODUCT_INFORMATION P
ON C.CATEGORY_ID = P.CATEGORY_ID
HAVING COUNT(*) > 10
GROUP BY C.CATEGORY_ID, C.CATEGORY_NAME
ORDER BY CANTIDAD_PRODUCTO DESC;

-----------------------------EJERCICIO #1.2.10
SELECT ORDER_ID, ORDER_DATE,
TO_CHAR(ORDER_DATE, 'DD') AS DIA_PEDIDO,
TO_CHAR(SYSDATE, 'DD') AS DIA_FECHA_ACTUAL
FROM OE.ORDERS
WHERE TO_CHAR(ORDER_DATE, 'DD') = TO_CHAR(SYSDATE, 'DD');

You might also like