﻿CREATE FUNCTION GetPrevRate(
	@Duration int,
	@Currency1 varchar(30),
	@Currency2 varchar(30),
	@ExchangeId int) RETURNS @Result TABLE(RateDate datetime, Rate decimal(22, 8))
	 
AS
Begin
	INSERT INTO @Result(RateDate, Rate) 

	SELECT TOP 1 CRT.CRTD_CreationDate, CAST(CRT.CRTD_BidClosingValue AS decimal(22, 8))
	FROM [Knoks_Prices].[dbo].[CRT_Data_LiveChart] CRT 
	WHERE CRT.CRTD_PairSymbol = @Currency1 + @Currency2 AND CRT.ExchangeId = @ExchangeId
		AND CRT.CRTD_CreationDate <= GETUTCDATE() 
		AND EXISTS (SELECT 1 FROM GetLastRate(@Duration,	@Currency1,	@Currency2,	@ExchangeId) t1 
			WHERE CRT.CRTD_CreationDate < t1.RateDate AND CRT.CRTD_BidClosingValue <> t1.Rate)
	ORDER BY CRT.CRTD_CreationDate DESC
	RETURN;
End
GO 