--
-- Step 01 - create schemas
--

-- stage schema
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'STAGE')
    EXEC sp_executesql N'CREATE SCHEMA STAGE'
GO

-- stocks schema
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'STOCKS')
    EXEC sp_executesql N'CREATE SCHEMA STOCKS'
GO

-- show user defined schemas
SELECT * FROM sys.schemas WHERE name in ('STOCKS', 'STAGE')
GO


--
-- Step 02 - drop tables
--

-- remove staging table
DROP TABLE IF EXISTS STAGE.SNP500
GO

-- remove stocks table
DROP TABLE IF EXISTS STOCKS.SNP500
GO


--
-- Step 03 - create tables
--

-- create staging table
CREATE TABLE STAGE.SNP500
(
  ST_SYMBOL VARCHAR(32) NOT NULL,
  ST_DATE DATE NOT NULL,
  ST_OPEN REAL NULL,
  ST_HIGH REAL NULL,
  ST_LOW REAL NULL,
  ST_CLOSE REAL NULL,
  ST_ADJ_CLOSE REAL NULL,
  ST_VOLUME BIGINT NULL
);
GO

-- create stocks table
CREATE TABLE STOCKS.SNP500
(
  ST_SYMBOL VARCHAR(32) NOT NULL,
  ST_DATE DATE NOT NULL,
  ST_AVG_OPEN REAL NULL,
  ST_AVG_HIGH REAL NULL,
  ST_AVG_LOW REAL NULL,
  ST_AVG_CLOSE REAL NULL,
  ST_AVG_ADJ_CLOSE REAL NULL,
  ST_AVG_VOLUME BIGINT NULL
);
GO


--
-- Step 03 - create tables
--

-- show user defined tables
SELECT 
    s.name AS SCHEMA_NM,
    t.name as TABLE_NM
FROM 
    sys.tables AS t
JOIN 
    sys.schemas AS s
ON 
    t.schema_id = s.schema_id
GO

