I'm trying to create a function that returns the status of an Enquiry on a specified date. When I create this function with date as the only parameter it works, but modifying the function to also filter by Enquiry Key returns no rows. Please let me know if a dbfiddle is required to demonstrate.
CREATE FUNCTION [dbo].[fn_EnquiryStatusMonthly] (@Date date, @EnquiryKey varchar) RETURNS table AS RETURN (
SELECT
TOP 1 ES_KEY as ESM_Link,
E_STATUS_NAME as ESM_Stat,
@Date as ESM_Date
FROM
F_ESTATUS_CHANGE
INNER JOIN F_ENQ_STATUS ON
E_STATUS_NO = ES_NEW_STAT
WHERE
ES_DATE <= @Date
AND ES_KEY = @EnquiryKey
ORDER BY
ES_DATE DESC )
select EnquiryStatusMonthly.* from f_enquiry cross apply fn_EnquiryStatusMonthly(getdate(),E_Key) as EnquiryStatusMonthly