Я застрял на функции сервера sql, вставлен ниже .. Я пытаюсь вернуть логическое значение (бит).Я не буду утомлять вас описанием схемы таблицы и вложенными функциями udf, если кто-то не захочет ее видеть, поскольку, когда я тестирую два значения, которые я вычисляю по отдельности, это работает нормально.Я получаю значение в две локальные переменные и сравниваю их.Опять же, по отдельности они работают, но когда я запускаю функцию, я всегда получаю ложь (я получал истину в одном случае с тестовыми данными некоторое время назад, но не смог восстановить его некоторое время).Поэтому мне интересно, если моя ошибка в моих операторах присваивания ближе к концу?
ALTER FUNCTION dbo.PricingVolDataAvailableToDateProvided
(@Ticker char,
@StartDate DATETIME2,
@NumberOfDaysBack int)
RETURNS bit
AS
BEGIN
DECLARE @Result bit
DECLARE @TargetDate DATETIME2
SET @TargetDate=dbo.TradingDateByStartDate(@NumberOfDaysBack, @StartDate)
DECLARE @DataPointDateFromTable DATETIME2
SET @DataPointDateFromTable= (SELECT TOP (1) TradeDate
FROM (SELECT TOP (@NumberOfDaysBack) TradeDate, Symbol
FROM tblDailyPricingAndVol
WHERE (Symbol = @Ticker AND TradeDate <= @StartDate)
ORDER BY TradeDate DESC) AS T2
ORDER BY TradeDate ASC)
IF @DataPointDateFromTable = @TargetDate
SET @Result = 1
ELSE
SET @Result = 0
RETURN @Result
END