388 lines
17 KiB
Transact-SQL
388 lines
17 KiB
Transact-SQL
CREATE Procedure [dbo].[USP_CRT_LiveChartProcess]
|
|
AS
|
|
SET NOCOUNT ON
|
|
|
|
declare @DT_Sec bigint, @StartDate datetime, @interval int, @RefDate datetime
|
|
set @StartDate = getdate()
|
|
|
|
SET @RefDate = '2015-01-01'
|
|
--select getdate()
|
|
|
|
declare @MaxId bigint
|
|
|
|
Declare @Queue table
|
|
( [Id] BIGINT Primary Key Clustered ,
|
|
[PairSymbol] [varchar](50) NOT NULL,
|
|
[Bid] [float] NOT NULL,
|
|
[Ask] [float] NOT NULL,
|
|
[Mid] [float] NOT NULL,
|
|
[BidProviderId] [tinyint] NOT NULL,
|
|
[AskProviderId] [tinyint] NOT NULL,
|
|
[BidCreationDate] [datetime] NOT NULL,
|
|
[AskCreationDate] [datetime] NOT NULL,
|
|
[BidReceivedDate] [datetime] NOT NULL,
|
|
[AskReceivedDate] [datetime] NOT NULL,
|
|
[SavedDate] [datetime] NOT NULL
|
|
)
|
|
|
|
|
|
select @MaxId = Max([Id])
|
|
from [YB_Quotes].[dbo].[SpotRatesQueue] with (nolock)
|
|
|
|
--select @MaxId MaxId
|
|
|
|
IF @MaxId IS NOT NULL
|
|
Begin
|
|
|
|
DELETE [YB_Quotes].[dbo].[SpotRatesQueue]
|
|
OUTPUT DELETED.[Id],
|
|
DELETED.[PairSymbol],
|
|
DELETED.[Bid],
|
|
DELETED.[Ask],
|
|
DELETED.[Mid],
|
|
DELETED.[BidProviderId],
|
|
DELETED.[AskProviderId],
|
|
DELETED.[BidCreationDate],
|
|
DELETED.[AskCreationDate],
|
|
DELETED.[BidReceivedDate],
|
|
DELETED.[AskReceivedDate],
|
|
DELETED.[SavedDate]
|
|
|
|
INTO @Queue
|
|
WHERE [Id] <= @MaxId
|
|
|
|
select
|
|
[PairSymbol],
|
|
convert(varchar(16),[BidReceivedDate],121) as [minute],
|
|
min([Bid]) as Bid_Low , --- Low
|
|
max([Bid]) as Bid_High, --- High
|
|
min([Mid]) as Mid_Low , --- Low
|
|
max([Mid]) as Mid_High, --- High
|
|
Count([Id]) as Cnt
|
|
INTO #c2
|
|
from @Queue
|
|
where 1=1
|
|
group by convert(varchar(16), [BidReceivedDate] ,121) ,[PairSymbol]
|
|
|
|
|
|
select
|
|
[PairSymbol],
|
|
convert(varchar(16),[BidReceivedDate] ,121) as [minute],
|
|
[BidReceivedDate] AS [DateQuote],
|
|
|
|
[Bid] AS Bid_Val,
|
|
[Mid] AS Mid_Val,
|
|
ROW_NUMBER() over (partition by [PairSymbol],convert(varchar(16),[BidReceivedDate] ,121) order by [BidReceivedDate] ) as Bid_start,
|
|
ROW_NUMBER() over (partition by [PairSymbol],convert(varchar(16),[BidReceivedDate] ,121) order by [BidReceivedDate] desc) as Bid_end
|
|
INTO #c3
|
|
from @Queue
|
|
where 1=1
|
|
create index ix_PairSymbol on #c2(PairSymbol)
|
|
create index ix_minute on #c2([minute])
|
|
|
|
create index ix_PairSymbol on #c3(PairSymbol)
|
|
create index ix_minute on #c3([minute])
|
|
create index ix_Bid_start on #c3(Bid_start)
|
|
create index ix_Bid_end on #c3(Bid_end)
|
|
|
|
UPDATE [dbo].[CRT_Data_LiveChart]
|
|
SET [CRTD_CreationDate] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.[CRTD_Period]
|
|
else [CRT_Data_LiveChart].[CRTD_CreationDate] end
|
|
,[CRTD_FirstQuote] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.[CRTD_FirstQuote]
|
|
else [CRT_Data_LiveChart].[CRTD_FirstQuote] end
|
|
,[CRTD_LastQuote] = A.[CRTD_LastQuote]
|
|
,[CRTD_BidOpeningValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then IsNull([CRTD_BidClosingValue],A.Bid_OpenValue)
|
|
else [CRTD_BidOpeningValue] end
|
|
,[CRTD_BidClosingValue] = A.Bid_CloseValue
|
|
,[CRTD_BidLowValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.Bid_Low
|
|
when A.Bid_Low < [CRTD_BidLowValue] then A.Bid_Low
|
|
else [CRTD_BidLowValue] end
|
|
,[CRTD_BidHighValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.Bid_High
|
|
when A.Bid_High > [CRTD_BidHighValue] then A.Bid_High
|
|
else [CRTD_BidHighValue] end
|
|
,[CRTD_MidOpeningValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then IsNull([CRTD_MidClosingValue],A.Mid_OpenValue) else [CRTD_MidOpeningValue] end
|
|
,[CRTD_MidClosingValue] = A.Mid_CloseValue
|
|
,[CRTD_MidLowValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.Mid_Low
|
|
when A.Mid_Low < [CRTD_MidLowValue] then A.Mid_Low
|
|
else [CRTD_MidLowValue] end
|
|
,[CRTD_MidHighValue] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then A.Mid_High
|
|
when A.Mid_High > [CRTD_MidHighValue] then A.Mid_High
|
|
else [CRTD_MidHighValue] end
|
|
,[CRTD_DateModified] = GetDate()
|
|
,[CRTD_Rows] = Case when A.[CRTD_Period] > [CRT_Data_LiveChart].[CRTD_CreationDate] then IsNull([CRTD_Rows],0) + Cnt
|
|
else Cnt end
|
|
|
|
|
|
From
|
|
(
|
|
select '1Minute' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*1))*(60*1) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '1Minute' Else Null End As [Ind], */
|
|
c2.[minute] [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 C2
|
|
Inner join #c3 C3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '5Minutes' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*5))*(60*5) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '5Minutes' Else Null End As [Ind], */
|
|
dateadd(minute, datepart(minute, C2.[minute]) / 5 * 5 - datepart(minute, C2.[minute]), C2.[minute]) [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
from #c2 AS c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '15Minutes' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*15))*(60*15) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '15Minutes' Else Null End As [Ind], */
|
|
dateadd(minute, datepart(minute, C2.[minute]) / 15 * 15 - datepart(minute, C2.[minute]), C2.[minute]) [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '30Minutes' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*30))*(60*30) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '30Minutes' Else Null End As [Ind], */
|
|
dateadd(minute, datepart(minute, C2.[minute]) / 30 * 30 - datepart(minute, C2.[minute]), C2.[minute]) [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '1Hour' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*60))*(60*60) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '1Hour' Else Null End As [Ind], */
|
|
dateadd(minute, datepart(minute, C2.[minute]) / 60 * 60 - datepart(minute, C2.[minute]), C2.[minute])
|
|
[CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '2Hours' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*60*2))*(60*60*2) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '2Hours' Else Null End As [Ind], */
|
|
--dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute])
|
|
dateadd(hour, datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute]) ) / 2 * 2 - datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute]) ), dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute]) )
|
|
[CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '4Hours' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*60*4))*(60*60*4) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '4Hours' Else Null End As [Ind], */
|
|
--dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute])
|
|
dateadd(hour, datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 240 * 240 - datepart(minute, C2.[minute]), C2.[minute]) ) / 4 * 4 - datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 240 * 240 - datepart(minute, C2.[minute]), C2.[minute]) ), dateadd(minute, datepart(minute, C2.[minute]) / 240 * 240 - datepart(minute, C2.[minute]), C2.[minute]) )
|
|
[CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '8Hours' AS [Target],
|
|
/* Case when (datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime)) /(60*60*8))*(60*60*8) =datediff(second,@RefDate,Cast(convert(char(16), GetDate(),121) as datetime))
|
|
then '8Hours' Else Null End As [Ind], */
|
|
--dateadd(minute, datepart(minute, C2.[minute]) / 120 * 120 - datepart(minute, C2.[minute]), C2.[minute])
|
|
dateadd(hour, datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 480 * 480 - datepart(minute, C2.[minute]), C2.[minute]) ) / 8 * 8 - datepart(hour, dateadd(minute, datepart(minute, C2.[minute]) / 480 * 480 - datepart(minute, C2.[minute]), C2.[minute]) ), dateadd(minute, datepart(minute, C2.[minute]) / 480 * 480 - datepart(minute, C2.[minute]), C2.[minute]) )
|
|
[CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '1Week' AS [Target],
|
|
/* Case when dateadd(day, -datepart(weekday, Cast(Convert(char(10),c2.[minute],121) as datetime))+1 , Cast(Convert(char(10),c2.[minute],121) as datetime))
|
|
= dateadd(day, -datepart(weekday, Cast(Convert(char(10),GetDate(),121) as datetime))+1 , Cast(Convert(char(10),GetDate(),121) as datetime))
|
|
then '1Week' Else Null End As [Ind], */
|
|
dateadd(day, -datepart(weekday, Cast(Convert(char(10),c2.[minute],121) as datetime))+1 , Cast(Convert(char(10),c2.[minute],121) as datetime))
|
|
[CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
select '1Day' AS [Target],
|
|
/* Case when Cast(Convert(char(10),c2.[minute],121) as datetime) = Cast(Convert(char(10),GetDate(),121) as datetime)
|
|
then '1Day' Else Null End As [Ind], */
|
|
Cast(Convert(char(10),c2.[minute],121) as datetime) [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
UNION
|
|
---select dateadd(day,-datepart(day,getdate())+1,Cast(Convert(char(10),GetDate(),121) as datetime) )
|
|
---select dateadd(day,-datepart(day,c2.[minute])+1,Cast(Convert(char(10),c2.[minute],121) as datetime) )
|
|
select '1Month' AS [Target],
|
|
/* Case when dateadd(day,-datepart(day,c2.[minute])+1,Cast(Convert(char(10),c2.[minute],121) as datetime) ) = Cast(Convert(char(10),GetDate(),121) as datetime)
|
|
then '1Month' Else Null End As [Ind], */
|
|
dateadd(day,-datepart(day,c2.[minute])+1,Cast(Convert(char(10),c2.[minute],121) as datetime) ) [CRTD_Period],
|
|
c3.[DateQuote] [CRTD_FirstQuote],
|
|
c3_Bid.[DateQuote] [CRTD_LastQuote],
|
|
c2.PairSymbol,
|
|
c3.Bid_Val as Bid_OpenValue,
|
|
IsNull(c3_Bid.Bid_Val,0) as Bid_CloseValue,
|
|
Bid_Low,
|
|
Bid_High,
|
|
IsNull(c3.Mid_Val,0) as Mid_OpenValue,
|
|
IsNull(c3_Bid.Mid_Val,0) as Mid_CloseValue,
|
|
Mid_Low,
|
|
Mid_High,
|
|
GetDate() As Date_Inserted,
|
|
c2.Cnt
|
|
from #c2 as c2
|
|
Inner join #c3 as c3 on c2.[PairSymbol] = c3.[PairSymbol] and c2.[minute] = c3.[minute] and Bid_start =1
|
|
Inner join #c3 as c3_Bid on c2.[PairSymbol] = c3_Bid.[PairSymbol] and c2.[minute] = c3_Bid.[minute] and c3_Bid.Bid_end =1
|
|
Where 1=1
|
|
) AS A
|
|
Where [CRTD_TargetName] = A.[Target] collate SQL_Latin1_General_CP1_CI_AS
|
|
And [CRTD_PairSymbol] = A.PairSymbol collate SQL_Latin1_General_CP1_CI_AS
|
|
--and PairSymbol = 'AUDUSD'
|
|
--and Target = '1Minute'
|
|
drop table #c2
|
|
drop table #c3
|
|
End
|
|
|
|
|
|
-- select datediff(ms,@StartDate,getdate()) TimeToProcess
|
|
|
|
---- select * from [dbo].[CRT_Data_LiveChart] where [CRTD_PairSymbol] = 'AUDUSD' AND [CRTD_TargetName] = '1Minute' |