Está en la página 1de 3

1.

Muestre por año, mes y ciudad del cliente, la cantidad de clientes de las ciudades cuyos
nombres empiecen con ‘C’ y que tienen registrada ventas en la base de datos. Ordenar el
resultado por ciudad, año y mes.

select YEAR(v.[Fecha pedido]) AS año,MONTH(v.[Fecha pedido]) as mes,c.Ciudad,


count(v.[ID cliente])as cantidad from dbo.Clientes c
inner join dbo.Ventas v on v.[ID cliente]=c.[ID Cliente]
where v.[ID cliente] in (select [ID Cliente] from dbo.Clientes) and c.[Nombre Cliente]
like 'C%'
group by v.[ID cliente],v.[Fecha pedido],v.[Fecha pedido]
,c.Ciudad
ORDER BY C.Ciudad, YEAR(v.[Fecha pedido]),MONTH(v.[Fecha pedido])

(50 row(s) affected)

2. Muestre la lista de empleados que no vendieron el producto 101151.Presente el resultado


mostrando el código de empleado, apellido y nombre, ordenado por apellido.

Dos formas:

1: select e.[ID empleado],e.Apellido,e.Nombre from dbo.Empleados as e


inner join dbo.Ventas as v on v.[ID empleado]=e.[ID empleado]
inner join dbo.Ventas_Detalle as vd on vd.[ID Venta]=v.[ID Venta]
inner join dbo.Productos as p on p.[ID producto]=vd.[ID producto]
where vd.[ID producto] <> 101151
group by e.[ID empleado],e.Apellido,e.Nombre
order by e.Apellido

2 forma : select e.[ID empleado],e.Apellido,e.Nombre from ventas as v


inner join dbo.Empleados as e on e.[ID empleado]=v.[ID empleado]
where [ID Venta] not in ( select [ID Venta] from Ventas_Detalle where [ID
producto]=101151)
group by e.[ID empleado],e.Apellido,e.Nombre
order by
e.Apellido

(7 row(s) affected)

3. Mostrar los productos que tengan ventas cuya diferencia en días entre la fecha de atención
solicitada y la fecha de pedido sea mayor a 12, solo para ventas que no estén pendientes de
envío (enviado <> ‘0’).

select p.[Nombre producto] from dbo.Productos as p


inner join dbo.Ventas_Detalle as vd on vd.[ID producto]=p.[ID producto]
inner join dbo.Ventas as v on v.[ID Venta]=vd.[ID Venta]
where v.Enviado <>0 and (DATEDIFF(DAY,V.[Fecha atencion solicitada],V.[Fecha pedido]) >
12)
group by [Nombre producto]

(0 row(s) affected)
4. Obtener las empresas de envío cuyo promedio mensual de entrega en días es mayor a 2.
Muestre la empresa de envío, año, mes y promedio en días de entrega. Recomendación, se
puede crear una vista.

SELECT [Empresa envio],year([Fecha despacho]),MONTH([Fecha


despacho]),AVG(DATEDIFF(DAY,[Fecha atencion solicitada],[Fecha despacho])) FROM
DBO.Ventas
group by [Empresa envio],year([Fecha despacho]),MONTH([Fecha
despacho]),AVG(DATEDIFF(DAY,[Fecha atencion solicitada],[Fecha despacho]))
having AVG(DATEDIFF(DAY,[Fecha atencion solicitada],[Fecha despacho]))>2
go