Documente Academic
Documente Profesional
Documente Cultură
, timediff=
CASE
when [Coil_ID]=LAG([Coil_ID]) OVER(order by [Stop_Date] desc) then nu
ll
else DATEDIFF(SECOND,[Stop_Date],LAG([Stop_Date]) OVER( order by [Stop_Da
te] desc))
END
FROM [VPDB].[dbo].[DANSL.PDO_Prod]
order by [Stop_Date] desc
PROCEDURES
/* Stored Procedure*/
/*Using Only Declare*/
USE TSQL2012;
GO
DECLARE @custid AS INT,
@orderdatefrom AS DATETIME,
@orderdateto AS DATETIME;
SET @custid = 37;
SET @orderdatefrom = '2007-04-01';
SET @orderdateto = '2007-07-01';
SELECT orderid, custid, shipperid, orderdate, requireddate, shippeddate
FROM Sales.Orders
WHERE custid = @custid
AND orderdate >= @orderdatefrom
AND orderdate < @orderdateto;
GO
/* Creating Procedures*/
IF OBJECT_ID('Sales.GetCustomerOrders', 'P') IS NOT NULL
DROP PROC Sales.GetCustomerOrders;
GO
CREATE PROC Sales.GetCustomerOrders
@custid AS INT,
@orderdatefrom AS DATETIME = '19000101',
@orderdateto AS DATETIME = '99991231',
@numrows AS INT = 0 OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT orderid, custid, shipperid, orderdate, requireddate, shippeddate
FROM Sales.Orders
WHERE custid = @custid
AND orderdate >= @orderdatefrom
AND orderdate < @orderdateto;
SET @numrows = @@ROWCOUNT;
RETURN;
END
GO
/*Calling Procedures*/
@lowqty AS SMALLINT,
@highqty AS SMALLINT
)
RETURNS TABLE AS RETURN
(
SELECT orderid, unitprice, qty
FROM Sales.OrderDetails
WHERE qty BETWEEN @lowqty AND @highqty
);
GO
/* Calling Inline TVF*/
SELECT orderid, unitprice, qty
FROM Sales.fn_FilteredExtension (10,20);
/* Multi Statement TVF */
IF OBJECT_ID('Sales.fn_FilteredExtension2', 'TF') IS NOT NULL
DROP FUNCTION Sales.fn_FilteredExtension2;
GO
CREATE FUNCTION Sales.fn_FilteredExtension2
(
@lowqty AS SMALLINT,
@highqty AS SMALLINT
)
RETURNS @returntable TABLE
(
orderid INT,
unitprice MONEY,
qty SMALLINT
)
AS
BEGIN
INSERT @returntable
SELECT orderid, unitprice, qty
FROM Sales.OrderDetails
WHERE qty BETWEEN @lowqty AND @highqty
RETURN
END;
GO
/* Calling M-TVF */
SELECT orderid, unitprice, qty
FROM Sales.fn_FilteredExtension2 (10,20);
CROSS APPLY
select Prod.* ,TrendAvg.*, mintable.* from [VPDB].[dbo].[DANSL.PDO_Prod] as Prod
CROSS APPLY (
select AVG([RECOILER_SPEED]) as [RECOILER_SPEED] ,AVG([COIL_LENGTH]) as
[COIL_LENGTH] ,avg ([COIL_THICKNESS]) as [COIL_THICKNESS],avg ([LINE_SPEED]) as