﻿CREATE PROCEDURE [dbo].[GetData]
	@pair  varchar(50),
	@start DATETIME,
	@end DATETIME, 
	@resolution varchar(10)
AS

SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

/*
---- Example :
Exec [GetData] 'EURUSD','2015-06-01', '2015-06-05','1'
*/


IF @resolution = '5' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_5Minutes]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]
    

ELSE IF @resolution = '15' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_15Minutes]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = '30' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_30Minutes]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = '60' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_1Hour]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = '120' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_2Hours]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = '240' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_4Hours]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = '480' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_8Hours]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = 'D' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_1Day]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = 'W' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_1Week]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE IF @resolution = 'M' 
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_1Month]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
    ORDER BY [CRTD_Period]

ELSE
		SELECT 
		 [CRTD_Period] as 'Timestamp'
		,[CRTD_BidOpeningValue] as 'BidOpen'
		,[CRTD_BidClosingValue] as 'BidClose'
		,[CRTD_BidLowValue] as 'BidLow'
		,[CRTD_BidHighValue] as 'BidHigh'

		,[CRTD_MidOpeningValue] as 'MidOpen'
		,[CRTD_MidClosingValue] as 'MidClose'
		,[CRTD_MidLowValue] as 'MidLow'
		,[CRTD_MidHighValue] as 'MidHigh'


	FROM [CRT_Data_1Minute]
	WHERE [CRTD_Period] >= @start
		AND [CRTD_Period] <= @end
		AND [CRTD_PairSymbol] = @pair
   ORDER BY [CRTD_Period]
RETURN 0