﻿
/*




*/

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
*/