Está en la página 1de 12

Crear base de datos si no subimos los script de que el profesor

lo subió

Doble click en el script base (unidad o sesión 2) donde dice


anexos descomprimes
Primer archivo que dice script base

Click derecho en tabla bd_video

También tenemos script insert 1

Y script insert 2

Agrego ventas
Tiene que uqedar base tienda video arriba
Insertar estas ventas sin idclientes
Agregar de la imagen don insert intos mas y uno de la ultima 1 mas

Cunado es y (and) es un solo rango


Cuando es o (or) son dos rangos

Cuando es on es donde

Esto es de consultas

Script 2
Por que hay relación entre venta y cliente

El inner join relaciona a la venta con el cliente siempre y cuando el idcliente aparece como
primari key en cliente

Hay que tener cuidado con los alias

v.numero

v.codigo

-- Consulta 8:
select v.numero,c.nombre, vi.codigo, vi.titulo, vi.precio, lv.cantidad from Venta v
inner join LineaDeVenta lv on v.numero = lv.numero
inner join Video vi on lv.codigo = vi.codigo
inner join cliente c on v.idcliente = c.idcliente

Debemos usar visula studio 2019 comunity

sql server 2019


------------------------------------------------------------------------------------------------------------------------------

Sesión 3

Que es agrupamiento en una consulta

A veces el agrupamiento es importante para las operaciones en la bases de datos

Por ejemplo calcular cálculos

Agrupar por cliente para quieres unas estadísticas

Cada cliente cuantas ventas ha realizado

Se puede usar el Group by

Sentencia que nos permite realizar ese tipo de consultas

Al término de la sesión el estudiante ejecuta consultas con agrupamiento en base a la


descripción de un caso, presentándolo de manera estructurada en un informe en el tiempo
adecuado

Caso ejemplo: base tienda de video

Basetiendavideo

Icono nueva consulta

Para realizar las nuevas consultas a realizar

La primera consulta que se va a realizar se va a utilizar

--- Select con funciones de agregación COUNT

----consulta 1: consultar el total de filas de la tabla venta

Select * from venta para saber cuántas filas hay en ventas

Select count (*) from venta------te sale sin nombre de columna


Select count(*) as total from ventas-------solo con una palabra

Select count(*) as {total de ventas} from ventas-------con espacios es corchete no llave

En paréntesis como es tipo función

Coun es un colntador de toda la tabla

[]

----consulta 2: consultar el total de ventas cuya fecha se mayor a ‘2020-05-01’

select count (*) as [total de ventas] from venta where fecha > ‘2020-05-01’

----consulta 3: consultar el total de ventas cuyo cliente tenga el dni igual a ‘12345678’

select count(*) as [Total Venta] from Venta v inner join Cliente c on (v.idCliente=c.idCliente)
where c.dni='12345678'

----consulta 4: consultar el total de ventas y el total de ventas con clientes

Select count (Numero) as [Total venta], count (idclientre) as [Venta Cliente] from Venta

select count(*) as [total de ventas], (select count(*) from venta v inner join cliente c on
v.idcliente = c.idcliente ) as [total de ventas con clientes] from venta------esto es con
subconsultas

ahora una nueva ventana

nueva consulta

--- select con funciones de agregación MAX y MIN

----consulta 5: consultar la fecha máxima y fecha minima de todas las ventas

Select * from venta

Select MAX (fecha) as [fecha maxima], MIN(fecha) as [fecha minima] from venta

----consulta 6: consultar la fecha máxima y fecha minima de las ventas cuya fecha sea mayor a
‘2020-05-01’
Select MAX (fecha) as [fecha maxima], MIN(fecha) as [fecha minima] from venta

where fecha > ‘2020-05-01’

----consulta 7: consultar la fecha máxima y fecha minima de las ventas cuya cliente tenga el dni
igual a ‘12345678’

select MAX(fecha) as [fecha maxima], Min(fecha) as [fecha minima] from Venta as v inner join
Cliente as c on v.idcliente = c.idcliente where c.dni= '12345678'

----consulta 8: consultar el total de ventas cuyo cliente tenga el dni igual a ‘12345678’

select count(*) as [Total Venta] from Venta v inner join Cliente c on (v.idCliente=c.idCliente)
where c.dni='12345678'

nueva consulta

--- Select con funciones de agregación SUM Y AVG

----consulta 9: consultar la suma de precios de todos los videos

Select * from video

Select SUM(precio) as [suma de precios] from videos

----consulta 10: consultar el promedio de precios de todos los videos

Select AVG(precio) as [promedio de precios] from videos

----consulta 11: consultar la suma y promedio de precios de los videos cuyos precios superiores
a 20

select sum(precio) as [suma de precios] , avg(precio) as [promedio precios] from video where
precio >20
nueva consulta

--- Select con funciones de agregación y agrupamiento

----consulta 12: consultar el total de ventas por cada cliente

Select idcliente, count(*) as [total de ventas] from ventas GROUP BY idcliente

----consulta 13: consultar el total de ventas por cada cliente mostrando su nombre

Select nombre, count(*) as [total de ventas] from ventas v inner join cliente c on v.idcliente =
c.idcliente GROUP BY nombre

----consulta 14: consultar el total de ventas por cada cliente mostrando el id de cliente y su
nombre pero solo las ventas con fecha mayor a ‘2020-05-01’

select nombre, v.idcliente, COUNT(*) as [Total de ventas]


from Venta v inner join Cliente c on v.idcliente = c.idcliente
where v.fecha > '2020-05-01'
GROUP BY nombre , v.idcliente

select c.idcliente, c.nombre,COUNT(*) as total from Venta v inner join Cliente c


on c.idcliente = v.idcliente
where v.fecha > '20200501'
group by c.nombre,c.idcliente
Consulta 15: consultar el total de ventas por cada cliente mostrando su nombre

Pero solo las ventas con fecha mayor a ‘2020-05-01’ y que se muestre ordenado por nombre

Select c.nombre, COUNT(*) as total_de_ventas from venta v inner join cliente c

On v.idcliente = c.idcliente where fecha > ‘2020-05-01’ GROUP BY c.nombre

ORDER BY c.nombre ASC

Consulta 16: consultar el total de ventas por cada cliente mostrando su nombre

Pero solo las ventas con fecha mayor a ‘2020-05-01’ y que se muestre ordenado total

Select c.nombre, COUNT(*) as [Total de ventas] from venta v inner join cliente c

On v.idcliente = c.idcliente where fecha > ‘2020-05-01’ GROUP BY c.nombre

ORDER BY [Total de ventas] DESC

Consulta 17: consultar el total de ventas por cada cliente mostrando su nombre

Pero solo las ventas con fecha mayor a ‘2020-05-01’ y que se muestre ordenado total

Select c.nombre, COUNT(*) as [Total de ventas] from venta v inner join cliente c

On v.idcliente = c.idcliente where fecha > ‘2020-05-01’ GROUP BY c.nombre


HAVING COUNT(*) >

yersonsamaniegovi@gmail.com

misma contraseña

También podría gustarte