Sei sulla pagina 1di 3

SENTENCIAS SELECT EN ORACLE

PASOS PARA REALIZAR UNA CONSULTA


-- 1. Identificar las Tablas
-- 2. Identificar los Campos a mostrar
-- 3. Identificar los Campos relacionados entre las tablas

-- 1. PRODUCTO P, MARCA M, VENTAS V


-- 2. P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE, V.UNIDADES
-- 3. P.PRODUCTO_ID = V.PRODUCTO_ID, P.MARCA_ID = M.MARCA_ID,

REQUERIMIENTO
--LISTADO DE MARCA_DESCRIPCION, PRODUCTO_DESCRIPCION, CANTIDAD_VENDIDA

CREACIÓN DE SENTENCIA SELECT


SELECT P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE, V.UNIDADES
FROM PRODUCTO P
INNER JOIN MARCA M ON P.MARCA_ID =M.MARCA_ID
INNER JOIN VENTAS V ON P.PRODUCTO_ID = V.PRODUCTO_ID AND V.MARCA_ID = M.MARCA_ID;
SELECT COUNT(*) FROM VENTAS;

SELECT COUNT(*) FROM MARCA;

SELECT COUNT(*) FROM PRODUCTO;

SELECT COUNT(*) FROM PRODUCTO P , MARCA M, VENTAS V


-- 499 X 6 X 10 = 29,940

SELECT COUNT(*)
FROM PRODUCTO P
INNER JOIN MARCA M ON P.MARCA_ID =M.MARCA_ID
INNER JOIN VENTAS V ON P.PRODUCTO_ID = V.PRODUCTO_ID;

-- NIVELES DE AGRUPACION POR PRODUCTO_DESCRIP, MARCA_NOMBRE


-- SUMA DE UNIDADES
--ES NECESARIO COLOCAR LOS CAMPOS DE NIVELES DE AGRUPACIÓN EN LA SENTENCIA GROUP BY
SELECT P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE, SUM(V.UNIDADES)
FROM PRODUCTO P
INNER JOIN MARCA M ON P.MARCA_ID =M.MARCA_ID
INNER JOIN VENTAS V ON P.PRODUCTO_ID = V.PRODUCTO_ID AND V.MARCA_ID = M.MARCA_ID
GROUP BY P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE
ORDER BY SUM(V.UNIDADES) DESC;
SELECT * FROM VENTAS WHERE Marca_Id=1;

--AGRUPACIÓN Y HAVING
--HAVING PERMITE APLICAR UN FILTRO DESPUÉS DE AGRUPAR O CONDICIONAR LOS RESULTADOS
---DESPUÉS DE REALIZAR UNA AGRUPACIÓN
--ES NECESARIO COLOCAR LOS CAMPOS DE NIVELES DE AGRUPACIÓN EN LA SENTENCIA GROUP BY
SELECT P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE, SUM(V.UNIDADES)
FROM PRODUCTO P
INNER JOIN MARCA M ON P.MARCA_ID =M.MARCA_ID
INNER JOIN VENTAS V ON P.PRODUCTO_ID = V.PRODUCTO_ID AND V.MARCA_ID = M.MARCA_ID
GROUP BY P.PRODUCTO_DESCRIP, M.MARCA_NOMBRE
HAVING SUM(V.UNIDADES) >170
ORDER BY SUM(V.UNIDADES) DESC;

--AGRUPAR POR SUCURSAL Y TOTALIZAR LAS UNIDADES, DÓLARES (Unidades*Precio) Y RECUENTO


--(CANTIDAD DE REGISTROS)
SELECT S.Sucursal_Nombre,SUM(V.UNIDADES) , SUM(V.UNIDADES * V.PRECIO)
FROM VENTAS V
INNER JOIN SUCURSAL S ON V.Sucursal_Id = S.Sucursal_Id
GROUP BY S.Sucursal_Nombre
ORDER BY SUM(V.UNIDADES * V.PRECIO) DESC;

SELECT S.Sucursal_Nombre,SUM(V.UNIDADES) , SUM(V.UNIDADES * V.PRECIO)


FROM VENTAS V
INNER JOIN SUCURSAL S ON V.Sucursal_Id = S.Sucursal_Id
GROUP BY S.Sucursal_Nombre
HAVING SUM(V.UNIDADES * V.PRECIO) > 190000
ORDER BY SUM(V.UNIDADES * V.PRECIO) DESC;

Potrebbero piacerti anche