Académique Documents
Professionnel Documents
Culture Documents
--Version2
SELECT NombreCategoría,COUNT(DISTINCT PE.IdPedido) NroPedidos
FROM Categorías C INNER JOIN Productos P
ON C.IdCategoría=P.IdCategoría INNER JOIN [Detalles de pedidos] D
ON D.IdProducto=P.IdProducto INNER JOIN Pedidos PE
on D.IdPedido=PE.IdPedido
GROUP BY NOMBRECATEGORÍA --WITH ROLLUP
SELECT NOMBRECATEGORÍA,COUNT(IDPEDIDO)NroPedidos
FROM
(SELECT NombreCategoría,PE.IdPedido
FROM Categorías C INNER JOIN Productos P
ON C.IdCategoría=P.IdCategoría INNER JOIN [Detalles de pedidos] D
ON D.IdProducto=P.IdProducto INNER JOIN Pedidos PE
on D.IdPedido=PE.IdPedido)T1
GROUP BY NombreCategoría
WITH ROLLUP
--VERSION 2
SELECT Nombrecompañía,t.IdCliente FROM CLIENTES C LEFT JOIN
(SELECT DISTINCT IDCLIENTE FROM PEDIDOS WHERE YEAR(FECHAPEDIDO)=2017
AND DATEPART(Q,FECHAPEDIDO)=1)T ON
C.IDCLIENTE=T.IDCLIENTE
WHERE T.IdCliente IS NULL
--USO DE LA VISTA
SELECT*FROM VNTAxPAÍSxAÑOS
WHERE PAÍS='Brasil'
--PROCEDIMIENTO ALMACENADO O STORE PROCEDURE
--CONSULTA DINAMICA EN BP: SE PUEDEN AGREGAR PARÁMETROS
ALTER PROC SPVENTAxPAIxA
@A1 INT,@A2 INT,@A3 INT,@A4 INT,@A5 INT AS
SELECT PAÍS,
AÑO1=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A1 THEN CANTIDAD*D.PrecioUnidad
ELSE 0 END),
AÑO2=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A2 THEN CANTIDAD*D.PrecioUnidad
ELSE 0 END),
AÑO3=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A3 THEN CANTIDAD*D.PrecioUnidad
ELSE 0 END),
AÑO4=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A4 THEN CANTIDAD*D.PrecioUnidad
ELSE 0 END),
AÑO5=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A5 THEN CANTIDAD*D.PrecioUnidad
ELSE 0 END),
TOTAL=SUM(CASE WHEN YEAR(FECHAPEDIDO)=@A1 OR YEAR(FECHAPEDIDO)=@A2 OR
YEAR(FECHAPEDIDO)=@A3 OR YEAR(FECHAPEDIDO)=@A4 OR YEAR(FECHAPEDIDO)=@A5
THEN CANTIDAD*D.PRECIOUNIDAD ELSE 0 END)
FROM CLIENTES C INNER JOIN PEDIDOS P ON C.IDCLIENTE=P.IDCLIENTE
INNER JOIN [Detalles de pedidos]D ON D.IDPEDIDO=P.IDPEDIDO
INNER JOIN PRODUCTOS T ON T.IDPRODUCTO=D.IDPRODUCTO
GROUP BY PAÍS with rollup
--USO PROCEDIMIENTO
EXEC SPVENTAxPAIxA 2017,2018,2019,2020,2021