120 lines
3.0 KiB
Transact-SQL
120 lines
3.0 KiB
Transact-SQL
|
|
CREATE procedure [dbo].[Agg_1Minute]
|
|
@StartDate datetime,
|
|
@PairSymbol NVARCHAR(50),
|
|
@High decimal(18,8),
|
|
@Low decimal(18,8),
|
|
@Open decimal(18,8),
|
|
@Close decimal(18,8),
|
|
@ExchangeId int
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
--Check if rate data for the date exists
|
|
if(exists(SELECT 1 FROM CRT_Data_LiveChart (nolock) WHERE ExchangeId = @ExchangeId AND [CRTD_PairSymbol] = @PairSymbol AND CRTD_CreationDate >= @StartDate))
|
|
Begin
|
|
RETURN
|
|
End
|
|
--Compare dates rounded to minutes
|
|
if (not exists(SELECT 1 FROM CRT_Data_LiveChart WHERE ExchangeId = @ExchangeId AND [CRTD_PairSymbol] = @PairSymbol
|
|
AND dateadd(mi, datediff(mi, 0, CRTD_CreationDate), 0) = dateadd(mi, datediff(mi, 0, @StartDate), 0)))
|
|
Begin
|
|
INSERT INTO [dbo].[CRT_Data_1Minute]
|
|
([CRTD_Period]
|
|
,[CRTD_FirstQuote]
|
|
,[CRTD_LastQuote]
|
|
,[CRTD_PairSymbol]
|
|
,[CRTD_BidOpeningValue]
|
|
,[CRTD_BidClosingValue]
|
|
,[CRTD_BidLowValue]
|
|
,[CRTD_BidHighValue]
|
|
,[CRTD_MidOpeningValue]
|
|
,[CRTD_MidClosingValue]
|
|
,[CRTD_MidLowValue]
|
|
,[CRTD_MidHighValue]
|
|
,[CRTD_DateIn]
|
|
,[CRTD_Rows]
|
|
,[ExchangeId]
|
|
)
|
|
SELECT CRTD_CreationDate
|
|
,0
|
|
,@StartDate
|
|
,CRTD_PairSymbol
|
|
,[CRTD_BidOpeningValue]
|
|
,[CRTD_BidClosingValue]
|
|
,[CRTD_BidLowValue]
|
|
,[CRTD_BidHighValue]
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,GETUTCDATE()
|
|
,0
|
|
,[ExchangeId]
|
|
FROM [CRT_Data_LiveChart] (nolock)
|
|
WHERE CRTD_ID = (SELECT TOP 1 lc.CRTD_ID from [CRT_Data_LiveChart] lc (nolock)
|
|
WHERE lc.ExchangeId = @ExchangeId AND lc.[CRTD_PairSymbol] = @PairSymbol
|
|
AND dateadd(mi, datediff(mi, 0, lc.CRTD_CreationDate), 0) <= dateadd(mi, datediff(mi, 0, @StartDate), 0)
|
|
ORDER BY lc.CRTD_CreationDate DESC)
|
|
|
|
INSERT INTO [dbo].[CRT_Data_LiveChart]
|
|
([CRTD_TargetName]
|
|
,[CRTD_CreationDate]
|
|
,[CRTD_FirstQuote]
|
|
,[CRTD_LastQuote]
|
|
,[CRTD_PairSymbol]
|
|
,[CRTD_BidOpeningValue]
|
|
,[CRTD_BidClosingValue]
|
|
,[CRTD_BidLowValue]
|
|
,[CRTD_BidHighValue]
|
|
,[CRTD_MidOpeningValue]
|
|
,[CRTD_MidClosingValue]
|
|
,[CRTD_MidLowValue]
|
|
,[CRTD_MidHighValue]
|
|
,[CRTD_DateModified]
|
|
,[CRTD_Rows]
|
|
,[ExchangeId])
|
|
Values
|
|
('LiveChart'
|
|
,@StartDate
|
|
,0
|
|
,@StartDate
|
|
,@PairSymbol
|
|
,@Open
|
|
,@Close
|
|
,@Low
|
|
,@High
|
|
,0
|
|
,0
|
|
,0
|
|
,0
|
|
,GETUTCDATE()
|
|
,0
|
|
,@ExchangeId
|
|
);
|
|
End
|
|
Else
|
|
Begin
|
|
UPDATE [dbo].[CRT_Data_LiveChart] SET
|
|
[CRTD_TargetName] = 'LiveChart'
|
|
,[CRTD_CreationDate] = @StartDate
|
|
,[CRTD_FirstQuote] = 0
|
|
,[CRTD_LastQuote] = @StartDate
|
|
,[CRTD_PairSymbol] = @PairSymbol
|
|
,[CRTD_BidOpeningValue] =@Open
|
|
,[CRTD_BidClosingValue]= @Close
|
|
,[CRTD_BidLowValue]=@Low
|
|
,[CRTD_BidHighValue] = @High
|
|
,[CRTD_MidOpeningValue] =0
|
|
,[CRTD_MidClosingValue]=0
|
|
,[CRTD_MidLowValue]=0
|
|
,[CRTD_MidHighValue]=0
|
|
,[CRTD_DateModified]=GETUTCDATE()
|
|
,[CRTD_Rows] =0,
|
|
[ExchangeId] = @ExchangeId
|
|
WHERE [CRTD_PairSymbol] = @PairSymbol AND ExchangeId = @ExchangeId
|
|
AND dateadd(mi, datediff(mi, 0, CRTD_CreationDate), 0) = dateadd(mi, datediff(mi, 0, @StartDate), 0)
|
|
END
|
|
END
|
|
GO
|