DealerID DealerCode DealerName ForecastID Name1 11 Sears 4 Dual1 11 Sears 5 Mortgage1 11 Sears 6 Retail2 05 Pick And Save 4 Dual2 05 Pick And Save 5 Mortgage2 05 Pick And Save 6 Retail2 05 Pick And Save 7 Wholesale2 05 Pick And Save 8 Region3 08 Pennys 4 Dual
SELECT *FROM (SELECT DealerID, DealerCode, DealerName, ForecastId, Name FROM Dealers d CROSS JOIN Forecast f) dfLEFT OUTER JOIN DealerForecastMap m ON df.ForecastId = m.ForecastId AND df.DealerID = m.DealerID;
DealerID DealerCode DealerName ForecastId Name DealerForecastMapID DealerID ForecastId----------- --------------- -------------------------------------------------- ----------- -------------------------------------------------- ------------------- --------------- -----------1 11 Sears 4 Dual 1 1 41 11 Sears 5 Mortgage 2 1 51 11 Sears 6 Retail 3 1 61 11 Sears 7 Wholesale NULL NULL NULL1 11 Sears 8 Region NULL NULL NULL1 11 Sears 9 Market NULL NULL NULL2 05 Pick And Save 4 Dual 4 2 42 05 Pick And Save 5 Mortgage 5 2 52 05 Pick And Save 6 Retail 6 2 62 05 Pick And Save 7 Wholesale 7 2 72 05 Pick And Save 8 Region 8 2 82 05 Pick And Save 9 Market NULL NULL NULL3 08 Pennys 4 Dual 9 3 43 08 Pennys 5 Mortgage NULL NULL NULL3 08 Pennys 6 Retail NULL NULL NULL3 08 Pennys 7 Wholesale NULL NULL NULL3 08 Pennys 8 Region NULL NULL NULL3 08 Pennys 9 Market NULL NULL NULL
ALTER PROC [dbo].[CreateSchema]ASIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'DealerForecastModel')) DROP Table DealerForecastModelIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'DealerForecast')) DROP Table DealerForecastIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'ModelForecast')) DROP Table ModelForecastIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Dealers')) DROP Table DealersIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Models')) DROP Table ModelsIF (EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'Forecast')) DROP Table ForecastCREATE TABLE [dbo].[Dealers]([DealerID] [int] CONSTRAINT PK_Dealers Primary Key,[DealerCode] [varchar](15) NOT NULL,[DealerName] [varchar](50) NOT NULL) ON [PRIMARY]CREATE TABLE [dbo].[Models]([ModelID] [int] CONSTRAINT PK_Models Primary Key,[ModelCode] [varchar](15) NOT NULL,) ON [PRIMARY]CREATE TABLE [dbo].[Forecast]([ForecastId] [int] CONSTRAINT PK_Forecast Primary Key,[Name] [varchar](50) NULL) ON [PRIMARY]CREATE TABLE [dbo].[DealerForecast]([DealerForecastID] [int] CONSTRAINT PK_DealerForecast Primary Key,[DealerID] [int] NULL,[ForecastID] [int] NULL) ON [PRIMARY]CREATE TABLE [dbo].[ModelForecast]([ModelForecastID] [int] CONSTRAINT PK_ModelForecast Primary Key,[ModelID] [int] NULL,[ForecastID] [int] NULL) ON [PRIMARY]CREATE TABLE [dbo].[DealerForecastModel]([DealerForecastModelID] [int] CONSTRAINT PK_DealarForecastModel Primary Key,[DealerForecastID] [int] NULL,[ModelID] [int] NULL) ON [PRIMARY]ALTER TABLE [dbo].[DealerForecastModel] WITH CHECK ADD CONSTRAINT [FK_DealerForecastModel_DealerForecast] FOREIGN KEY([DealerForecastID])REFERENCES [dbo].[DealerForecast] ([DealerForecastID])ALTER TABLE [dbo].[DealerForecastModel] WITH CHECK ADD CONSTRAINT [FK_DealerForecastModel_Models] FOREIGN KEY([ModelID])REFERENCES [dbo].[Models] ([ModelID])ALTER TABLE [dbo].[DealerForecast] WITH CHECK ADD CONSTRAINT [FK_DealerForecast_Dealers] FOREIGN KEY([DealerID])REFERENCES [dbo].[Dealers] ([DealerID])ALTER TABLE [dbo].[DealerForecast] WITH CHECK ADD CONSTRAINT [FK_DealerForecast_Forecast] FOREIGN KEY([ForecastID])REFERENCES [dbo].[Forecast] ([ForecastId])ALTER TABLE [dbo].[ModelForecast] WITH CHECK ADD CONSTRAINT [FK_ModelForecast_Forecast] FOREIGN KEY([ForecastID])REFERENCES [dbo].[Forecast] ([ForecastId])ALTER TABLE [dbo].[ModelForecast] WITH CHECK ADD CONSTRAINT [FK_ModelForecast_Models] FOREIGN KEY([ModelID])REFERENCES [dbo].[Models] ([ModelID])INSERT Dealers(DealerID, DealerCode, DealerName) VALUES(1, '11', 'Brea')INSERT Dealers(DealerID, DealerCode, DealerName) VALUES(2, '05', 'Fontana')INSERT Dealers(DealerID, DealerCode, DealerName) VALUES(3, '08', 'Cerritos')INSERT Models(ModelID, ModelCode) VALUES(1, 'YZ-125')INSERT Models(ModelID, ModelCode) VALUES(2, 'YZ-250')INSERT Models(ModelID, ModelCode) VALUES(3, 'YZ-450')INSERT Models(ModelID, ModelCode) VALUES(4, 'Rhino 700')INSERT Models(ModelID, ModelCode) VALUES(5, 'Grizzly 450')INSERT Models(ModelID, ModelCode) VALUES(6, 'FZR')INSERT Models(ModelID, ModelCode) VALUES(7, 'FZS')INSERT Forecast(ForecastID, Name) VALUES(4, 'Motocross')INSERT Forecast(ForecastID, Name) VALUES(5, 'ATV')INSERT Forecast(ForecastID, Name) VALUES(6, 'Watercraft')INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(1, 1, 4)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(2, 2, 4)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(3, 3, 4)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(4, 4, 5)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(5, 5, 5)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(6, 6, 6)INSERT ModelForecast(ModelForecastID, ModelID, ForecastID) VALUES(7, 7, 6)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(1, 1, 4)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(2, 1, 5)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(3, 1, 6)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(4, 2, 4)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(5, 2, 5)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(6, 2, 6)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(7, 3, 4)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(8, 3, 5)INSERT DealerForecast(DealerForecastID, DealerID, ForecastID) VALUES(9, 3, 6)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(1, 1, 1)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(2, 1, 3)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(3, 2, 1)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(4, 2, 2)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(5, 2, 6)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(6, 3, 3)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(7, 3, 4)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(8, 4, 6)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(9, 5, 2)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(10, 5, 4)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(11, 5, 6)INSERT DealerForecastModel(DealerForecastModelID, DealerForecastID, ModelID) VALUES(12, 5, 7)