Consult As

14
”UNIVERSIDAD NACIONAL “DANIEL ALCIDES CARRIÓN” FACULTAD DE INGENERIA ESCUELA DE SISTEMAS Y COMPUTACIÓN - VIII SEMESTRE SISTEMAS DE BASES II TEMA: CONSULTAS DE FUNCIONES AGREGADAS EN SQL DOCENTE: Ing. MUÑOZ ROBLES, Williams Antonio ALUMNA: PALMA CRISTOBAL, Tania

Transcript of Consult As

Page 1: Consult As

”UNIVERSIDAD NACIONAL “DANIEL ALCIDES CARRIÓN”

FACULTAD DE INGENERIA

ESCUELA DE SISTEMAS Y COMPUTACIÓN - VIII SEMESTRE

SISTEMAS DE BASES IITEMA:

CONSULTAS DE FUNCIONES AGREGADAS EN SQL

DOCENTE:

Ing. MUÑOZ ROBLES, Williams Antonio

ALUMNA:

PALMA CRISTOBAL, Tania

CERRO DE PASCO – 2016

Page 3: Consult As

CREANDO LAS TABLAS CREANDO LA TABLA CLIENTE

CREATE TABLE CLIENTE (ID_CLIENTE VARCHAR (5),NOMBRE_CLIENTE VARCHAR 50),EDAD_CLIENTE INT,PRIMARY KEY (ID_CLIENTE))

CREANDO LA TABLA FACTURACREATE TABLE FACTURA (SERFAC VARCHAR (5),NROFAC VARCHAR 5),FECHFAC DATETIME,ID_CLIENTE VARCHAR (5),PRIMARY KEY (SERFAC, NROFAC),FOREIGN KEY (ID_CLIENTE) REFERENCES CLIENTE (ID_CLIENTE) ON DELETE CASCADE)

CREANDO LA TABLA PRODUCTOCREATE TABLE PRODUCTO (ID_PROD VARCHAR (5),NOMBRE_PROD VARCHAR (50),PRECIO_PROD NUMERIC (10,2),CANTIDAD_PROD INTPRIMARY KEY (ID_PROD))

CREANDO LA TABLA DFACTURACREATE TABLE DFACTURA (SERFAC VARCHAR (5),NROFAC VARCHAR (5),ID_PROD VARCHAR (5),CANTIDAD INT,SUBTOTAL NUMERIC (10,2)PRIMARY KEY (SERFAC, NROFAC, ID_PROD),FOREIGN KEY (SERFAC, NROFAC) REFERENCES FACTURA (SERFAC, NROFAC) ON DELETE CASCADE,FOREIGN KEY (ID_PROD) REFERENCES PRODUCTO (ID_PROD) ON DELETE CASCADE,)

ALMACENANDO DATOS A LAS TABLASSistemas de Bases II Página 3

Page 4: Consult As

DATOS DE LA TABLA CLIENTE

INSERT INTO CLIENTEVALUES ('CL002','PEDRO',35), ('CL003','JUAN',40), ('CL004','KARINA',18), ('CL005','JUANA',22), ('CL006','VANESA',47)

DATOS DE LA TABLA PRODUCTO

INSERT INTO PRODUCTO VALUES('PD001','YOGURT',5.20,20),('PD002','GASEOSA',3.5,24),('PD003','GALLETAS',1.5,40),('PD004','FIDEOS',1.2,35),('PD005','LECHE',3.20,48)

DATOS DE LA TABLA FACTURA

INSERT INTO FACTURA VALUES('1','100','23-04-2014','CL003'),('2','101','21-05-2014','CL002'),('3','102','18-06-2014','CL001'),('4','103','12-07-2014','CL004'),('5','104','13-07-2014','CL001'),('6','105','14-08-2014','CL003')

INSERT INTO FACTURAVALUES ('7','106','13-05-2015','CL002'), ('8','107','17-06-2015','CL001'), ('9','108','23-6-2015','CL004')

DATOS DE LA TABLA DFACTURA

INSERT INTO DFACTURA VALUES('1','100','PD002',5,18),('2','101','PD001',2,10.4),('3','102','PD003',4,6),('4','103','PD004',3,3.6),('5','104','PD005',3,9.6),('6','105','PD003',5, 7.5)

INSERT INTO DFACTURAVALUES ('1','100','PD004',10, 12)

INSERT INTO DFACTURAVALUES ('5','104','PD004',1, 1.2), ('8','107','PD001',2, 10.4)

CONSULTAS DE FUNCIONES AGREGADAS

Sistemas de Bases II Página 4

Page 5: Consult As

1) AVG: Devuelve el promedio de los valores de un grupo. Los valores NULL se pasan por alto.

AVG ([ALL | DISTINCT] expresión)

SELECT AVG (CANTIDAD_PROD) AS PROMEDIO_CANTIDAD_PRODUCTOFROM PRODUCTO

SELECT AVG (PRECIO_PROD) AS PROMEDIO_PRECIOSFROM PRODUCTO

SELECT AVG (SUBTOTAL) AS [PROMEDIO TOTAL]FROM DFACTURA

2) COUNT: Devuelve el número de elementos de un grupo.

COUNT ({[[ALL | DISTINCT] expresión] | *})

-- CONTAR EL NUMERO DE PRODUCTOS

SELECT CLIENTE.ID_CLIENTE, NOMBRE_CLIENTE, COUNT (CANTIDAD) AS PRODUCTOSFROM FACTURA INNER JOIN CLIENTE ON FACTURA.ID_CLIENTE=CLIENTE.ID_CLIENTE INNER JOIN DFACTURA ON FACTURA.SERFAC=DFACTURA.SERFAC AND FACTURA.NROFAC=DFACTURA.NROFACGROUP BY CLIENTE.ID_CLIENTE, NOMBRE_CLIENTE

Sistemas de Bases II Página 5

Page 6: Consult As

--CANTIDAD DE FACTURAS EMITIDAS

SELECT DISTINCT COUNT (NROFAC) AS CANTIDAD_FACTURAS_EMITIDASFROM FACTURA

---CONTAR LA CANTIDAD DE CLIENTES

SELECT COUNT (ID_CLIENTE) AS [TOTAL_CLIENTES]FROM CLIENTE

---CONTAR EL NUMERO DE PRODUCTOS VENDIDOS

SELECT PRODUCTO.ID_PROD, NOMBRE_PROD, COUNT (CANTIDAD) AS PRODUCTOSFROM DFACTURA INNER JOIN PRODUCTO ON DFACTURA.ID_PROD=PRODUCTO.ID_PROD GROUP BY PRODUCTO.ID_PROD, NOMBRE_PROD

--TOTAL DE REGISTROS DE LAS TABLAS DESDE UNA MISMA CONSULTA

SELECT 'CLIENTE' AS [TABLA], COUNT (ID_CLIENTE)

Sistemas de Bases II Página 6

Page 7: Consult As

AS [TOTAL REGISTROS] FROM CLIENTEUNIONSELECT 'PRODUCTO' AS [TABLA], COUNT (ID_PROD)AS [TOTAL REGISTROS] FROM PRODUCTOUNIONSELECT 'FACTURA' AS [TABLA], COUNT (SERFAC)AS [TOTAL REGISTROS] FROM FACTURAGO

3) MAX: Devuelve el valor máximo de la expresión

MAX ([ALL | DISTINCT] expresión)

SELECT MAX (EDAD_CLIENTE) AS EDAD_MAXIMAFROM CLIENTE

---MONTO MA SALTO Y MONTO MAS BAJO

SELECT MAX (SUBTOTAL) AS [MONTO MAYOR], MIN (SUBTOTAL) AS [MONTO MENOR]FROM DFACTURA

--- MONTO MA SALTO Y MONTO MAS BAJO POR AÑO

SELECT YEAR (FECHFAC) AS [AÑO], MAX (SUBTOTAL) AS [MONTO MAYOR],MIN (SUBTOTAL) AS [MONTO MENOR]FROM FACTURA, DFACTURAWHERE YEAR (FECHFAC)='2015'GROUP BY YEAR (FECHFAC)ORDER BY YEAR (FECHFAC) DESC

Sistemas de Bases II Página 7

Page 8: Consult As

4) MIN: Devuelve el valor mínimo de la expresión

MIM ([ALL | DISTINCT] expresión)

SELECT MIN (EDAD_CLIENTE) AS EDAD_MAXIMAFROM CLIENTE

--SELECCIONAR EL PRODUCTO CUYO VALOR SEA MENOR 3.50

SELECT NOMBRE_PROD, MIN (PRECIO_PROD) AS [PRECIO]FROM PRODUCTOGROUP BY NOMBRE_PRODHAVING MIN (PRECIO_PROD) <3.50;

--SELECCIONAR EL PRODUCTO CUYO VALOR SEA MAYOR 3.00

SELECT NOMBRE_PROD, MIN (PRECIO_PROD) AS [PRECIO]FROM PRODUCTOGROUP BY NOMBRE_PRODHAVING MIN (PRECIO_PROD) >3.00;

Sistemas de Bases II Página 8

Page 9: Consult As

5) STEV: Devuelve la desviación típica estadística de todos los valores de la expresión especificada

STDEV ([ALL | DISTINCT] expresión)

---DETERMINAR LA DESVIACION ESTANDAR DEL PRODUCTO

SELECT STDEV (PRECIO_PROD) AS [DESVIACION ESTANDAR]FROM PRODUCTO

6) SUM: Devuelve la suma de todos los valores o sólo de los valores DISTINCT de la expresión

SELECT SUM (CANTIDAD_PROD) AS CANTIDAD_STOCKFROM PRODUCTO

--SACAR EL TOTAL DE UNA FACTURA ESPECIFICADA

SELECT SERFAC, NROFAC, SUM (SUBTOTAL) AS TOTAL_FACTURAFROM DFACTURA INNER JOIN PRODUCTO ON DFACTURA.ID_PROD=PRODUCTO.ID_PRODWHERE SERFAC='1' AND NROFAC='100'GROUP BY SERFAC, NROFAC

--SACAR EL TOTAL DE TODAS LAS FACTURAS

SELECT SERFAC, NROFAC, SUM (SUBTOTAL) AS TOTAL_FACTURAFROM DFACTURA INNER JOIN PRODUCTO ON DFACTURA.ID_PROD=PRODUCTO.ID_PRODGROUP BY SERFAC, NROFAC

Sistemas de Bases II Página 9

Page 10: Consult As

---SUMA EL TOTAL DE PRODUCTOS

SELECT CLIENTE.ID_CLIENTE, NOMBRE_CLIENTE, SUM (CANTIDAD) AS CANTIDAD_PRODUCTOFROM FACTURA INNER JOIN CLIENTE ON FACTURA.ID_CLIENTE=CLIENTE.ID_CLIENTE INNER JOIN DFACTURA ON FACTURA.SERFAC=DFACTURA.SERFAC AND FACTURA.NROFAC=DFACTURA.NROFACGROUP BY CLIENTE.ID_CLIENTE, NOMBRE_CLIENTE

---SUMA TOTAL POR CADA AÑO

SELECT DISTINCT YEAR (FECHFAC) AS [AÑO], SUM (SUBTOTAL) AS [TOTAL_ACUMULADO]FROM FACTURA, DFACTURAGROUP BY YEAR (FECHFAC)

---SUMA TOTAL POR CADA MES

SELECT DISTINCT MONTH (FECHFAC) AS [MES],SUM (SUBTOTAL) AS [TOTAL_ACUMULADO]FROM FACTURA, DFACTURAGROUP BY MONTH (FECHFAC)

Sistemas de Bases II Página 10

Page 11: Consult As

--- ESTABLECER EL VALOR TOTAL DE STOCK

SELECT SUM (CANTIDAD_PROD*PRECIO_PROD) AS [TOTAL STOCK]FROM PRODUCTO

7) CON CLAUSULA DISTINCT

SELECT DISTINCT SERFACFROM DFACTURA

8) CON CLUSULA TOP

--DEVUELVE LOS 2 MEJORES PRODUCTOS EN CUANTO A PRECIO_PROD

SELECT TOP 2 ID_PROD, NOMBRE_PROD, PRECIO_PRODFROM PRODUCTOORDER BY PRECIO_PROD DESC;

Sistemas de Bases II Página 11