Sie sind auf Seite 1von 14

Instituto Politécnico Nacional

“La Técnica al Servicio de la Patria”

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías


Avanzadas

Primer Departamental

Recuperación

01/octubre/2018

ALUMNA:

INGRID ALITZEL SÁNCHEZ ELGUEA

PROFESOR:

JUAN CARLOS RAZO RUIZ


ÍNDICE

1 ¿Cuáles productos se han adquirido para su venta y cuántas piezas por producto? ordenados
alfabéticamente .................................................................................................................................. 3
2 ¿Cuáles productos en el catálogo no se han adquirido para su comercialización? ordenados
alfabéticamente .................................................................................................................................. 4
3 ¿Cuáles productos se han vendido y cuántas piezas vendidas por producto tenemos? ordenados
alfabéticamente .................................................................................................................................. 5
4 Realice una consulta que en cada renglón y por cada producto muestre la cantidad total de
productos adquiridos, total de la cantidad de productos vendidos y el saldo de piezas que nos
quedan de ese producto ordenado alfabéticamente ......................................................................... 6
5 Si la regla es volver a surtir un producto cuando nos queden 3 productos o menos ¿cuáles
deberíamos resurtir? y ¿cuántas piezas nos quedan en existencia de esos productos? El resultado
debe salir en un único conjunto de registros ...................................................................................... 7
6 Genere un reporte de altas y bajas de producto por fecha calculando el saldo y el dinero
erogado, vendido, ganado y en stock por cada producto, el dinero en stock se considera a precio
de venta............................................................................................................................................... 8
7 ¿Cuáles son los 5 productos menos redituables? ............................................................................ 9
8 ¿Cuáles son los 5 productos más redituables? ............................................................................. 11
9 ¿A qué cliente(s) le(s) hemos vendido más veces y cuantas veces nos ha(n) comprado? ............ 12
10 ¿Qué cliente(s) ha(n) gastado más dinero con nosotros y a cuánto asciende(n) su(s) compra(s)?
........................................................................................................................................................... 13
11 ¿Cuál es el nombre, dirección completa y dinero gastado de los 5 proveedores a los que más le
hemos comprado (en dinero)? ordenados del mayor al menor ....................................................... 14
use UPIIPASILLO

select *from Clientes


select *from Codigos_Postales
select *from Estados
select *from compras_productos
select * from ventas_productos
select * from productos order by nombre ASC
select * from compras
select * from proveedores
select * from ventas
select * from ciudades
select *from Horarios

1 ¿Cuáles productos se han adquirido para su venta y cuántas piezas


por producto? ordenados alfabéticamente
SELECT PD.Nombre, SUM(CPD.Cantidad) as Cantidad
into #ProdComprados
from Productos PD
inner join Compras_Productos CPD on PD.Codigo=CPD.Id_Producto
group by PD.Nombre
order by PD.Nombre ASC;
2 ¿Cuáles productos en el catálogo no se han adquirido para su
comercialización? ordenados alfabéticamente

select Prod.Nombre, Prod.Codigo, sum(Cantidad)


as CantidadComprada
into #prodCOMP
from Compras_Productos CP
inner join Productos Prod
on CP.Id_Producto=Prod .Codigo
group by Prod.Nombre,Prod.Codigo
order by Prod.Nombre,Prod.Codigo DESC

select * from #prodCOMP

select Prod.Nombre from Productos Prod


left join #prodCOMP PC on PC.Codigo=Prod.Codigo
where Prod.Codigo not in (select Codigo from #prodCOMP )
3 ¿Cuáles productos se han vendido y cuántas piezas vendidas por
producto tenemos? ordenados alfabéticamente

SELECT PD.Nombre, SUM(VP.Cantidad) as Cantidad


into #ProdVendidos
from Productos PD
inner join Ventas_Productos VP on PD.Codigo=VP.Id_Producto
group by PD.Nombre
order by PD.Nombre ASC;

select * from #ProdVendidos


4 Realice una consulta que en cada renglón y por cada producto
muestre la cantidad total de productos adquiridos, total de la
cantidad de productos vendidos y el saldo de piezas que nos quedan
de ese producto ordenado alfabéticamente

select PC.Nombre, PC.Cantidad as cantAdquirido, PV.Cantidad as cantVendido,


PC.Cantidad-PV.Cantidad as Saldo
from #ProdComprados PC
left join #ProdVendidos PV on PC.Nombre=PV.Nombre;
5 Si la regla es volver a surtir un producto cuando nos queden 3
productos o menos ¿cuáles deberíamos resurtir? y ¿cuántas piezas
nos quedan en existencia de esos productos? El resultado debe salir
en un único conjunto de registros

select * from #ejercuatro

select E4.Nombre, E4.Saldo


from #ejercuatro E4
where Saldo <= 3
6 Genere un reporte de altas y bajas de producto por fecha
calculando el saldo y el dinero erogado, vendido, ganado y en stock
por cada producto, el dinero en stock se considera a precio de venta

select
Prod.Nombre,Comp.Fecha, CProd.Cantidad AS Saldo,
(CProd.Cantidad*Prod.[Precio Compra]) AS Erogado, --dinero que costó realizar la
compra
SPACE(0) as Vendido,
(CProd.Cantidad*Prod.[Precio Compra]*-1) as Ganado,
(CProd.Cantidad*Prod.[Precio Venta]) AS DineroStock
from Compras_Productos CProd inner join Compras Comp ON
CProd.Id_Compra=Comp.Id_Compra
inner join Productos Prod on Prod.Codigo=CProd.Id_Producto
UNION -- nos falta asociar valores a la columna de vendido
select Prod.Nombre, Ven.Fecha,(VP.Cantidad*-1) AS Saldo,
SPACE(0) AS Erogado,(VP.Cantidad*Prod.[Precio Venta]) AS Vendido,
(VP.Cantidad*Prod.[Precio Compra]) as Ganado,
(VP.Cantidad*Prod.[Precio Venta]*-1) AS DinerosStock
from Ventas_Productos VP
inner join Ventas Ven on VP.No_Venta=Ven.No_Venta
INNER JOIN Productos Prod on Prod.Codigo=VP.Id_Producto ;

select * from Productos


select * from Compras
select * from Compras_Productos
select * from Ventas
select * from Ventas_Productos
7 ¿Cuáles son los 5 productos menos redituables?
/*creación de las disferentes vistas que necesitaremos*/

CREATE VIEW [SaldodelasCompras] as


select P.Nombre,C.Fecha, CP.Cantidad AS Saldo,(CP.Cantidad*P.[Precio Compra]) AS
Erogado, (CP.Cantidad*P.[Precio Compra]*-1) as Ganado,
(CP.Cantidad*P.[Precio Venta]) AS DineroStock
from Compras_Productos CP inner join Compras C ON CP.Id_Compra=C.Id_Compra
inner join Productos P on P.Codigo=CP.Id_Producto

create view [SaldosGenerales] as


select P.Nombre,C.Fecha, CP.Cantidad AS Saldo,(CP.Cantidad*P.[Precio Compra]) AS
Erogado, SPACE(0) as Vendido, (CP.Cantidad*P.[Precio Compra]*-1) as Ganado,
(CP.Cantidad*P.[Precio Venta]) AS DineroStock
from Compras_Productos CP inner join Compras C ON CP.Id_Compra=C.Id_Compra
inner join Productos P on P.Codigo=CP.Id_Producto
UNION
select P.Nombre, V.Fecha,(VP.Cantidad*-1) AS Saldo,SPACE(0) AS
Erogado,(VP.Cantidad*P.[Precio Venta]) AS Vendido, (VP.Cantidad*P.[Precio Compra])
as Ganado,
(VP.Cantidad*P.[Precio Venta]*-1) AS DinerosStock
from Ventas_Productos VP inner join Ventas V on VP.No_Venta=V.No_Venta
INNER JOIN Productos P on P.Codigo=VP.Id_Producto ;

create view [SaldodelasVentas] as


select P.Nombre, V.Fecha,(VP.Cantidad) AS Saldo,(VP.Cantidad*P.[Precio Venta]) AS
Vendido, (VP.Cantidad*P.[Precio Compra]) as Ganado,
(VP.Cantidad*P.[Precio Venta]*-1) AS DinerosStock
from Ventas_Productos VP inner join Ventas V on VP.No_Venta=V.No_Venta
INNER JOIN Productos P on P.Codigo=VP.Id_Producto ;

create view [PiezasV] as


SELECT Nombre, sum(Saldo) as PiezasV FROM SaldosVentas group by Nombre

create view [PiezasC] as


SELECT Nombre, sum(Saldo) as PiezasC FROM SaldosCompras group by Nombre
------------------------------------------------------------------------------------
------------

select ST.Nombre,sum(ST.Erogado) as Erogado, sum (ST.Vendido) as


Vendido,sum(ST.Saldo) as Saldo, (sum(ST.Vendido)-sum(ST.Erogado)) as
Ganado,sum(ST.DineroStock) as DineroStock
INTO #PRE
from SaldosTotales ST
GROUP BY ST.Nombre

SELECT P.Nombre,PiezasC,Erogado,PiezasV,Vendido,Saldo,Ganado,DineroStock into #PREV1


FROM #PRE P left join PiezasC PC on PC.Nombre=P.Nombre
left join PiezasV PV on PV.Nombre=P.Nombre where Ganado<0 order by Ganado asc
update #PREV1 set PiezasV=0 where PiezasV is null

----consulta final-----
select top 5 * from #PREV1 order by PiezasV
---para empezar de nuevo----
drop view PiezasC
drop view PiezasV
8 ¿Cuáles son los 5 productos más redituables?

select * from #PRE


SELECT P.Nombre,PiezasC,Erogado,PiezasV,Vendido,Saldo,Ganado,DineroStock into #PREV2
FROM #PRE P left join PiezasC PC on PC.Nombre=P.Nombre
left join PiezasV PV on PV.Nombre=P.Nombre where Ganado>0
select top 5 * from #PREV2 ORDER BY PiezasV

select top 5 * from #PREV2 order by ganado desc


9 ¿A qué cliente(s) le(s) hemos vendido más veces y cuantas veces
nos ha(n) comprado?
Select top 2 CL.Nombre, CL.Apellido_Paterno, CL.Apellido_Materno, count(CL.Nombre)
as numCompras
from Ventas VT
inner join Clientes CL on VT.Id_Cliente = CL.Id_Cliente
group by CL.Nombre, CL.Apellido_Paterno, CL.Apellido_Materno
order by numCompras DESC;
10 ¿Qué cliente(s) ha(n) gastado más dinero con nosotros y a cuánto
asciende(n) su(s) compra(s)?
select V.Id_Cliente ,(Cantidad*[Precio Venta]) as Cantcomp
INTO #primertabla
from Ventas_Productos VP
inner join Ventas V on V.No_Venta=VP.No_Venta
INNER JOIN Productos Prod on Prod.Codigo =VP.Id_Producto
order by V.Id_Cliente

SELECT Id_Cliente,sum(Cantcomp) AS dinGastadoenTotal


into #cantGastxcli
FROM #primertabla
GROUP BY Id_Cliente
order by dinGastadoenTotal DESC

select Cli.Nombre+' '+Cli.Apellido_Paterno+' '+Cli.Apellido_Materno AS


NombreCliente,MC.*
from #cantGastxcli MC
inner join Clientes Cli ON MC.Id_Cliente=Cli.Id_Cliente
where dinGastadoenTotal=(select max(dinGastadoenTotal) from #cantGastxcli);
11 ¿Cuál es el nombre, dirección completa y dinero gastado de los 5
proveedores a los que más le hemos comprado (en dinero)?
ordenados del mayor al menor

Select Comp.Id_Proveedor, (Cantidad*[Precio Compra]) as MontoSurtido


into #Tercertabla
from Compras Comp
inner join Compras_Productos CProd ON CProd.Id_Compra=Comp.Id_Compra
inner join Productos Prod on Prod.Codigo=CProd.Id_Producto
order by Comp.Id_Proveedor

SELECT top 5
T.Id_Proveedor, Pr.Nombre, Pr.Calle,Pr.[Numero Ext],Pr.[Numero
Int],Pr.Colonia,Pr.[C.P.] ,CI.Descripcion AS Ciudad,
CP.Municipio, sum(MontoSurtido) as TotalComprado
from #Tercertabla T inner join Proveedores Pr on Pr.Id_Proveedor=T.Id_Proveedor
inner join Codigos_Postales CP ON CP.[C.P.]=Pr.[C.P.]
LEFT join Ciudades CI ON CI.Id_Ciudad IS NOT NULL AND CI.Id_Ciudad=CP.Id_Ciudad
group by T.Id_Proveedor,Pr.Nombre,Pr.Calle,Pr.[Numero Ext],Pr.[Numero
Int],Pr.Colonia,Pr.[C.P.],CI.Descripcion,
CP.Municipio order by TotalComprado desc

Select * from Compras_Productos


Select * from Proveedores
select * from Compras

Das könnte Ihnen auch gefallen