1
이제 다른 방법으로이 작업을 수행 할 수 있는지 확신 할 수 없으므로 UDF를 사용하여 다음 예약을 찾으려고합니다. 기능 및 테이블이 포함 된 다음 예약 레코드
이
내 UDF입니다 : 내 임시 테이블에서 사용할 수있는 각 레코드에 대해이 다음 예약 정보를 얻을 필요가CREATE FUNCTION [dbo].[fnGetNextBookingForPatient]
(@PatientId BIGINT,
@BookingStartTime SMALLDATETIME)
RETURNS TABLE
AS
RETURN
(SELECT TOP 1
BookingId As NextBookingId,
C.Color As NextBookingCatColor,
C.CategoryName As NextBookingCatName,
b.StartTime As NextBookingTime
FROM
dbo.Booking B
INNER JOIN
Category C ON c.CategoryId = b.CategoryId
WHERE
B.StartTime > @BookingStartTime
AND b.PatientId = @PatientId
AND ISNULL(B.IsCancelled, 0) = 0
AND ISNULL(B.IsDeleted, 0) = 0
ORDER BY
B.StartTime
)
현재 임시 테이블
PatientId| BookingId | BookingTime
---------+-------------------+---------------------
1235 | 15585 | 2017-02-19 08:00:00
예상 임시 테이블
PatientId| BookingId | BookingTime | NextBookingId| NextBookingTime
---------+-----------+--------------------+------------+-----------------
1235 | 15585 | 2017-02-19 08:00:00 | 16522 | 2017-02-23 11:00:00
이것은 내가
SELECT
*,
dbo.fnGetNextBookingForPatient(PatientId, @TenantId, StartTime)
FROM
#Temp
ORDER BY
StartTime ASC
내가 오류
열 "DBO"또는 사용자 정의 함수 또는 집계 "dbo.fnGetNextBookingForPatient", 또는 이름 중 하나를 찾을 수 없습니다 것은입니다
을 얻고 뭘하려 모호한
함수로 작업하는 방법에 익숙하지 않아 여러 값을 반환합니다. 여기에 붙어 있습니다.