Writing Functions and Stored Procedures in SQL Server
Meghan Kwartler
IT Consultant
ALTER FUNCTION SumLocationStats (@EndDate as datetime = '1/01/2017')
RETURNS TABLE AS RETURN
SELECT
PULocationID as PickupLocation,
COUNT(ID) as RideCount,
SUM(TripDistance) as TotalTripDistance
FROM YellowTripData
WHERE CAST(DropOffDate as Date) = @EndDate
GROUP BY PULocationID;
CREATE OR ALTER FUNCTION SumLocationStats (
@EndDate AS datetime = '1/01/2017')
RETURNS TABLE AS RETURN
SELECT
PULocationID as PickupLocation,
COUNT(ID) AS RideCount,
SUM(TripDistance) AS TotalTripDistance
FROM YellowTripData
WHERE CAST(DropOffDate AS Date) = @EndDate
GROUP BY PULocationID;
-- Delete function
DROP FUNCTION dbo.CountTripAvgFareDay
-- Create CountTripAvgFareDay as Inline TVF instead of MSTVF
CREATE FUNCTION dbo.CountTripAvgFareDay(
@Month char(2),
@Year char(4)
) RETURNS TABLE AS RETURN (
SELECT
CAST(DropOffDate as date) as DropOffDate,
COUNT(ID) as TripCount,
AVG(FareAmount) as AvgFareAmt
FROM YellowTripData
WHERE
DATEPART(month, DropOffDate) = @Month
AND DATEPART(year, DropOffDate) = @Year
GROUP BY CAST(DropOffDate as date));
SELECT
OBJECTPROPERTY(
OBJECT_ID('[dbo].[GetRideHrsOneDay]'),
'IsDeterministic'
)
+---+
| 1 |
+---+
SELECT
OBJECTPROPERTY(
OBJECT_ID('[dbo].[GetTomorrow]'),
'IsDeterministic'
)
+---+
| 0 |
+---+
CREATE OR ALTER FUNCTION dbo.GetRideHrsOneDay (@DateParm date)
RETURNS numeric WITH SCHEMABINDING
AS
BEGIN
RETURN
(SELECT SUM(DATEDIFF(second, PickupDate, DropoffDate))/3600
FROM dbo.YellowTripData
WHERE CONVERT (date, PickupDate) = @DateParm)
END;
Writing Functions and Stored Procedures in SQL Server