Knocks/BackEnd/Knoks.PriceDB/Stored Procedures/USP_CRT_LiveChartDataInit.sql

310 lines
9.2 KiB
Transact-SQL

/*
*/
CREATE Procedure [dbo].[USP_CRT_LiveChartDataInit]
@PairSymbol varchar(50)
AS
--- EXEC USP_CRT_LiveChartDataInit @PairSymbol = 'SYBGBP'
---- truncate table [CRT_Data_LiveChart]
--delete from CRT_Data_LiveChart where [CRTD_PairSymbol] = @PairSymbol
IF EXISTS ( select 1 from [CRT_Data_LiveChart] where [CRTD_PairSymbol] = @PairSymbol)
Begin
print 'Data Already Exists'
Return 1
End
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]
)
select top 1 '15Minutes' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
@PairSymbol [CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_15Minutes] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '1Day' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_1Day] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '1Hour' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_1Hour] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '1Minute' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_1Minute] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '1Month' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_1Month] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '1Week' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_1Week] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '2Hours' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_2Hours] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '30Minutes' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_30Minutes] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '4Hours' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_4Hours] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '5Minutes' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_5Minutes] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
UNION
select '8Hours' AS [CRTD_TargetName],
Max([CRTD_Period]) AS [CRTD_Period] ,
Max([CRTD_LastQuote]) AS [CRTD_FirstQuote],
Max([CRTD_LastQuote]) AS [CRTD_LastQuote],
[CRTD_PairSymbol],
0 AS [CRTD_BidOpeningValue],
0 AS [CRTD_BidClosingValue],
Max([CRTD_BidLowValue]) AS [CRTD_BidLowValue],
Min([CRTD_BidHighValue]) AS [CRTD_BidHighValue],
0 AS [CRTD_MidOpeningValue],
0 AS [CRTD_MidClosingValue],
Max([CRTD_MidLowValue]) AS [CRTD_MidLowValue],
Min([CRTD_MidHighValue]) AS [CRTD_MidHighValue],
GetDate() AS [CRTD_DateModified]
from [dbo].[CRT_Data_8Hours] with (nolock)
WHERE [CRTD_PairSymbol] = @PairSymbol
Group By [CRTD_PairSymbol]
ORDER BY 1,2,5
select * from [dbo].[CRT_Data_LiveChart]
WHERE [CRTD_PairSymbol] = @PairSymbol
/*
-- Checks :
select * from [YB_Quotes].[dbo].[PairSymbols] with (nolock)
where [PairSymbol] NOT in (select [CRTD_PairSymbol] collate SQL_Latin1_General_CP1_CI_AS from YB_Charts..[CRT_Data_LiveChart])
select [CRTD_PairSymbol],Count(*)
from [dbo].[CRT_Data_LiveChart] with (nolock)
Group By [CRTD_PairSymbol]
Having count(*) <> 11
*/