Multi Statement TVF
สร้าง multi statement table valued function ที่คืนค่าจำนวนการเดินทางและระยะเวลาเฉลี่ยของแต่ละวัน โดยอ้างอิงจากค่าพารามิเตอร์เดือนและปีที่ส่งเข้ามา
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การเขียนฟังก์ชันและ Stored Procedures ใน SQL Server
คำแนะนำการฝึกหัด
- สร้างฟังก์ชัน
CountTripAvgDuration()ที่คืนค่าเป็นตัวแปรตาราง (table variable) ชื่อ@DailyTripStats - ประกาศพารามิเตอร์อินพุต
@Monthและ@Year - แทรกผลลัพธ์ของคิวรีลงในตัวแปรตาราง
@DailyTripStats - ใช้
CASTเพื่อ SELECT และ GROUP BY คอลัมน์StartDateในชนิดข้อมูลdate
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Create the function
CREATE FUNCTION ___ (___ CHAR(2), ___ CHAR(4))
-- Specify return variable
RETURNS ___ TABLE(
TripDate date,
TripCount int,
AvgDuration numeric)
AS
BEGIN
-- Insert query results into @DailyTripStats
___ ___
SELECT
-- Cast StartDate as a date
___(___ AS ___),
COUNT(ID),
AVG(Duration)
FROM CapitalBikeShare
WHERE
DATEPART(month, StartDate) = @Month AND
DATEPART(year, StartDate) = @Year
-- Group by StartDate as a date
GROUP BY ___(___ AS ___)
-- Return
___
END