├── AdventureWorksUpdater.sql ├── CSV Files ├── customer.csv ├── date.csv ├── geography.csv ├── products.csv └── sales.csv ├── Dashboard └── AdventureWorks Dashboard.pbix ├── English_to_Yoruba_Translation_Bootcamp_In_house_Hackathon.ipynb ├── LICENSE ├── README.md ├── SQL Scripts ├── customer_cleaned.sql ├── date_cleaned.sql ├── geography_cleaned.sql ├── products_cleaned.sql └── sales_cleaned.sql └── Visualization ├── customer_details.jpg ├── entity_relationship_diagram.JPG ├── product_details.jpg └── sales_overview.jpg /AdventureWorksUpdater.sql: -------------------------------------------------------------------------------- 1 | /****** Object: StoredProcedure [dbo].[AdventureWorksUpdate 2 | Copyright 2018 Just-BI BV, Raid Fikri (raid.fikri@just-bi.nl) 3 | 4 | Licensed under the Apache License, Version 2.0 (the "License"); 5 | you may not use this file except in compliance with the License. 6 | You may obtain a copy of the License at 7 | 8 | http://www.apache.org/licenses/LICENSE-2.0 9 | 10 | Unless required by applicable law or agreed to in writing, software 11 | distributed under the License is distributed on an "AS IS" BASIS, 12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | See the License for the specific language governing permissions and 14 | limitations under the License. 15 | 16 | ******/ 17 | SET ANSI_NULLS ON 18 | GO 19 | 20 | SET QUOTED_IDENTIFIER ON 21 | GO 22 | 23 | CREATE PROCEDURE [dbo].[AdventureWorksUpdate1] 24 | AS 25 | BEGIN 26 | DECLARE @AddWeeks INT; 27 | DECLARE @AddYears INT; 28 | DECLARE @AddMonths INT; 29 | 30 | -- CREATE A LOG TABLE TO SHOW DIFFERENCE BEFORE AND AFTER THE UPDATE 31 | if exists (select * from sysobjects where name='TempCheckTable' and xtype='U') 32 | DROP TABLE [dbo].[TempCheckTable]; 33 | 34 | CREATE TABLE [dbo].[TempCheckTable]( 35 | [TableName] [nvarchar](50) NOT NULL, 36 | [ColName] [nvarchar](50) NOT NULL, 37 | [DateBefore] [date] NULL, 38 | [DateAfter] [date] NULL, 39 | [ValueBefore] [int] NULL, 40 | [ValueAfter] [int] NULL 41 | CONSTRAINT PK_TableColumn PRIMARY KEY NONCLUSTERED ([TableName], [ColName]) 42 | ) ON [PRIMARY] 43 | 44 | -- UPDATE THE LOG TABLE WITH THE INITIAL FROM- AND TO- VALUES 45 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 46 | SELECT 'DimDate', 'DateMin' , MIN([FullDateAlternateKey]), MIN([DateKey]) FROM [dbo].[DimDate]; 47 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 48 | SELECT 'DimDate', 'DateMax' , MAX([FullDateAlternateKey]), MAX([DateKey]) FROM [dbo].[DimDate]; 49 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 50 | SELECT 'DimCustomer', 'BirthDateMin' , MIN([BirthDate]) FROM [dbo].[DimCustomer]; 51 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 52 | SELECT 'DimCustomer', 'BirthDateMax' , MAX([BirthDate]) FROM [dbo].[DimCustomer]; 53 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 54 | SELECT 'DimCustomer', 'DateFirstPurchaseMin' , MIN([DateFirstPurchase]) FROM [dbo].[DimCustomer]; 55 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 56 | SELECT 'DimCustomer', 'DateFirstPurchaseMax' , MAX([DateFirstPurchase]) FROM [dbo].[DimCustomer]; 57 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 58 | SELECT 'DimEmployee', 'BirthDateMin' , MIN([BirthDate]) FROM [dbo].[DimEmployee]; 59 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 60 | SELECT 'DimEmployee', 'BirthDateMax' , MAX([BirthDate]) FROM [dbo].[DimEmployee]; 61 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 62 | SELECT 'DimEmployee', 'HireDateMin' , MIN([HireDate]) FROM [dbo].[DimEmployee]; 63 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 64 | SELECT 'DimEmployee', 'HireDateMax' , MAX([HireDate]) FROM [dbo].[DimEmployee]; 65 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 66 | SELECT 'DimEmployee', 'StartDateMin' , MIN([StartDate]) FROM [dbo].[DimEmployee]; 67 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 68 | SELECT 'DimEmployee', 'StartDateMax' , MAX([StartDate]) FROM [dbo].[DimEmployee]; 69 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 70 | SELECT 'DimEmployee', 'EndDateMin' , MIN([EndDate]) FROM [dbo].[DimEmployee]; 71 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 72 | SELECT 'DimEmployee', 'EndDateMax' , MAX([EndDate]) FROM [dbo].[DimEmployee]; 73 | 74 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 75 | SELECT 'DimProduct', 'StartDateMin' , MIN([StartDate]) FROM [dbo].[DimProduct]; 76 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 77 | SELECT 'DimProduct', 'StartDateMax' , MAX([StartDate]) FROM [dbo].[DimProduct]; 78 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 79 | SELECT 'DimProduct', 'EndDateMin' , MIN([EndDate]) FROM [dbo].[DimProduct]; 80 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore]) 81 | SELECT 'DimProduct', 'EndDateMax' , MAX([EndDate]) FROM [dbo].[DimProduct]; 82 | 83 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 84 | SELECT 'DimReseller', 'YearOpenedMin' , MIN([YearOpened]) FROM [dbo].[DimReseller]; 85 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 86 | SELECT 'DimReseller', 'YearOpenedMax' , MAX([YearOpened]) FROM [dbo].[DimReseller]; 87 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 88 | SELECT 'DimReseller', 'FirstOrderYearMin' , MIN([FirstOrderYear]) FROM [dbo].[DimReseller]; 89 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 90 | SELECT 'DimReseller', 'FirstOrderYearMax' , MAX([FirstOrderYear]) FROM [dbo].[DimReseller]; 91 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 92 | SELECT 'DimReseller', 'LastOrderYearMin' , MIN([LastOrderYear]) FROM [dbo].[DimReseller]; 93 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 94 | SELECT 'DimReseller', 'LastOrderYearMax' , MAX([LastOrderYear]) FROM [dbo].[DimReseller]; 95 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 96 | SELECT 'DimReseller', 'OrderMonthMin' , MIN([OrderMonth]) FROM [dbo].[DimReseller]; 97 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [ValueBefore]) 98 | SELECT 'DimReseller', 'OrderMonthMax' , MAX([OrderMonth]) FROM [dbo].[DimReseller]; 99 | 100 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 101 | SELECT 'FactCallCenter', 'DateMin' , MIN([Date]), MIN([DateKey]) FROM [dbo].[FactCallCenter]; 102 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 103 | SELECT 'FactCallCenter', 'DateMax' , MAX([Date]), MAX([DateKey]) FROM [dbo].[FactCallCenter]; 104 | 105 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 106 | SELECT 'FactCurrencyRate', 'DateMin' , MIN([Date]), MIN([DateKey]) FROM [dbo].[FactCurrencyRate]; 107 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 108 | SELECT 'FactCurrencyRate', 'DateMax' , MAX([Date]), MAX([DateKey]) FROM [dbo].[FactCurrencyRate]; 109 | 110 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 111 | SELECT 'FactFinance', 'DateMin' , MIN([Date]), MIN([DateKey]) FROM [dbo].[FactFinance]; 112 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 113 | SELECT 'FactFinance', 'DateMax' , MAX([Date]), MAX([DateKey]) FROM [dbo].[FactFinance]; 114 | 115 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 116 | SELECT 'FactInternetSales', 'OrderDateMin' , MIN([OrderDate]), MIN([OrderDateKey]) FROM [dbo].[FactInternetSales]; 117 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 118 | SELECT 'FactInternetSales', 'OrderDateMax' , MAX([OrderDate]), MAX([OrderDateKey]) FROM [dbo].[FactInternetSales]; 119 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 120 | SELECT 'FactInternetSales', 'DueDateMin' , MIN([DueDate]), MIN([DueDateKey]) FROM [dbo].[FactInternetSales]; 121 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 122 | SELECT 'FactInternetSales', 'DueDateMax' , MAX([DueDate]), MAX([DueDateKey]) FROM [dbo].[FactInternetSales]; 123 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 124 | SELECT 'FactInternetSales', 'ShipDateMin' , MIN([ShipDate]), MIN([ShipDateKey]) FROM [dbo].[FactInternetSales]; 125 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 126 | SELECT 'FactInternetSales', 'ShipDateMax' , MAX([ShipDate]), MAX([ShipDateKey]) FROM [dbo].[FactInternetSales]; 127 | 128 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 129 | SELECT 'FactProductInventory', 'MovementDateMin' , MIN([MovementDate]), MIN([DateKey]) FROM [dbo].[FactProductInventory]; 130 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 131 | SELECT 'FactProductInventory', 'MovementDateMax' , MAX([MovementDate]), MAX([DateKey]) FROM [dbo].[FactProductInventory]; 132 | 133 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 134 | SELECT 'FactResellerSales', 'OrderDateMin' , MIN([OrderDate]), MIN([OrderDateKey]) FROM [dbo].[FactResellerSales]; 135 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 136 | SELECT 'FactResellerSales', 'OrderDateMax' , MAX([OrderDate]), MAX([OrderDateKey]) FROM [dbo].[FactResellerSales]; 137 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 138 | SELECT 'FactResellerSales', 'DueDateMin' , MIN([DueDate]), MIN([DueDateKey]) FROM [dbo].[FactResellerSales]; 139 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 140 | SELECT 'FactResellerSales', 'DueDateMax' , MAX([DueDate]), MAX([DueDateKey]) FROM [dbo].[FactResellerSales]; 141 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 142 | SELECT 'FactResellerSales', 'ShipDateMin' , MIN([ShipDate]), MIN([ShipDateKey]) FROM [dbo].[FactResellerSales]; 143 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 144 | SELECT 'FactResellerSales', 'ShipDateMax' , MAX([ShipDate]), MAX([ShipDateKey]) FROM [dbo].[FactResellerSales]; 145 | 146 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 147 | SELECT 'FactSalesQuota', 'DateMin' , MIN([Date]), MIN([DateKey]) FROM [dbo].[FactSalesQuota]; 148 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 149 | SELECT 'FactSalesQuota', 'DateMax' , MAX([Date]), MAX([DateKey]) FROM [dbo].[FactSalesQuota]; 150 | 151 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 152 | SELECT 'FactSurveyResponse', 'DateMin' , MIN([Date]), MIN([DateKey]) FROM [dbo].[FactSurveyResponse]; 153 | INSERT INTO [dbo].[TempCheckTable] ([TableName] , [ColName] , [DateBefore], [ValueBefore]) 154 | SELECT 'FactSurveyResponse', 'DateMax' , MAX([Date]), MAX([DateKey]) FROM [dbo].[FactSurveyResponse]; 155 | 156 | -- DETERMINE THE NUMBER OF WEEKS TO BE ADDED AND ASSIGN IT TO A VARIABLE 157 | SELECT @AddWeeks = DATEDIFF(WW, MAX([OrderDate]) ,GETDATE()+10), @AddMonths = DATEDIFF(MM, MAX([OrderDate])+2 ,GETDATE()+10), @AddYears = DATEDIFF(YY, MAX([OrderDate]) ,GETDATE()+10) FROM [dbo].[FactInternetSales]; 158 | -- SELECT MAX([OrderDate]), DATEDIFF(ww, MAX([OrderDate]) ,GETDATE()+10) FROM [dbo].[FactInternetSales]; 159 | 160 | --if not exists (select * from sysobjects where name='Temp_Date' and xtype='U') 161 | -- BEGIN 162 | -- CREATE TABLE [dbo].[Temp_Date]([LastDate] [date] NULL, [LastDate_Key] [int] NULL, [WeeksAgo] [int] NULL) ON [PRIMARY] 163 | -- END 164 | 165 | 166 | --TRUNCATE TABLE [dbo].[Temp_Date]; 167 | 168 | --INSERT INTO [dbo].[Temp_Date] VALUES(@DateLast, @DateLastKey, @AddWeeks); 169 | 170 | -- SELECT * FROM [dbo].[Temp_Date]; 171 | 172 | -- DROP CONSTRAINTS 173 | ALTER TABLE [dbo].[FactCallCenter] DROP CONSTRAINT [FK_FactCallCenter_DimDate]; 174 | ALTER TABLE [dbo].[FactCurrencyRate] DROP CONSTRAINT [FK_FactCurrencyRate_DimDate]; 175 | ALTER TABLE [dbo].[FactFinance] DROP CONSTRAINT [FK_FactFinance_DimDate]; 176 | ALTER TABLE [dbo].[FactInternetSales] DROP CONSTRAINT [FK_FactInternetSales_DimDate]; 177 | ALTER TABLE [dbo].[FactInternetSales] DROP CONSTRAINT [FK_FactInternetSales_DimDate1]; 178 | ALTER TABLE [dbo].[FactInternetSales] DROP CONSTRAINT [FK_FactInternetSales_DimDate2]; 179 | ALTER TABLE [dbo].[FactProductInventory] DROP CONSTRAINT [FK_FactProductInventory_DimDate]; 180 | ALTER TABLE [dbo].[FactResellerSales] DROP CONSTRAINT [FK_FactResellerSales_DimDate]; 181 | ALTER TABLE [dbo].[FactResellerSales] DROP CONSTRAINT [FK_FactResellerSales_DimDate1]; 182 | ALTER TABLE [dbo].[FactResellerSales] DROP CONSTRAINT [FK_FactResellerSales_DimDate2]; 183 | ALTER TABLE [dbo].[FactSurveyResponse] DROP CONSTRAINT [FK_FactSurveyResponse_DateKey]; 184 | ALTER TABLE [dbo].[FactSalesQuota] DROP CONSTRAINT [FK_FactSalesQuota_DimDate]; 185 | 186 | -- Return the name of primary key. 187 | -- SELECT name FROM sys.key_constraints WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'DimDate'; 188 | 189 | -- Delete the primary key constraint ot the DimDate table 190 | ALTER TABLE [dbo].[DimDate] DROP CONSTRAINT PK_DimDate_DateKey; 191 | 192 | 193 | -- UPDATE THE DIMDATE TABLE 194 | UPDATE [dbo].[DimDate] SET [FullDateAlternateKey] = DATEADD(ww,@AddWeeks,[FullDateAlternateKey]); 195 | UPDATE [dbo].[DimDate] SET [DateKey] = YEAR([FullDateAlternateKey]) * 10000 + MONTH([FullDateAlternateKey]) * 100 + DAY([FullDateAlternateKey]); 196 | UPDATE [dbo].[DimDate] SET [DayNumberOfMonth] = DAY([FullDateAlternateKey]); 197 | UPDATE [dbo].[DimDate] SET [DayNumberOfYear] = DATEDIFF(day,STR(YEAR([FullDateAlternateKey]),4)+'0101',[FullDateAlternateKey])+1; 198 | UPDATE [dbo].[DimDate] SET [WeekNumberOfYear] = DATEPART ( ww , [FullDateAlternateKey] ); 199 | UPDATE [dbo].[DimDate] SET [MonthNumberOfYear] = DATEPART ( mm , [FullDateAlternateKey] ); 200 | UPDATE [dbo].[DimDate] SET [CalendarQuarter] = DATEPART ( qq , [FullDateAlternateKey] ); 201 | UPDATE [dbo].[DimDate] SET [CalendarYear] = DATEPART ( yyyy , [FullDateAlternateKey] ); 202 | UPDATE [dbo].[DimDate] SET [CalendarSemester] = CASE WHEN MONTH([FullDateAlternateKey]) <= 6 THEN 1 ELSE 2 END ; 203 | UPDATE [dbo].[DimDate] SET [FiscalQuarter] = DATEPART ( qq , DATEADD (m, 6, [FullDateAlternateKey]) ); 204 | UPDATE [dbo].[DimDate] SET [FiscalYear] = DATEPART ( yyyy , DATEADD (m, 6, [FullDateAlternateKey]) ); 205 | UPDATE [dbo].[DimDate] SET [FiscalSemester] = CASE WHEN MONTH(DATEADD (m, 6, [FullDateAlternateKey])) <= 6 THEN 1 ELSE 2 END ; 206 | SET LANGUAGE us_english; 207 | UPDATE [dbo].[DimDate] SET [EnglishMonthName]= DATENAME(month, [FullDateAlternateKey]); 208 | SET LANGUAGE Spanish; 209 | UPDATE [dbo].[DimDate] SET [SpanishMonthName]= DATENAME(month, [FullDateAlternateKey]); 210 | SET LANGUAGE French; 211 | UPDATE [dbo].[DimDate] SET [FrenchMonthName]= DATENAME(month, [FullDateAlternateKey]); 212 | SET LANGUAGE us_english; 213 | 214 | -- UPDATE THE OTHER TABLES 215 | UPDATE [dbo].[FactCallCenter] SET [Date] = DATEADD(ww,@AddWeeks,[Date]); 216 | UPDATE [dbo].[FactCallCenter] SET [DateKey] = YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date]); 217 | UPDATE [dbo].[FactCurrencyRate] SET [Date] = DATEADD(ww,@AddWeeks,[Date]); 218 | UPDATE [dbo].[FactCurrencyRate] SET [DateKey] = YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date]); 219 | UPDATE [dbo].[FactFinance] SET [Date] = DATEADD(ww,@AddWeeks,[Date]); 220 | UPDATE [dbo].[FactFinance] SET [DateKey] = YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date]); 221 | UPDATE [dbo].[FactInternetSales] SET [OrderDate] = DATEADD(ww,@AddWeeks,[OrderDate]); 222 | UPDATE [dbo].[FactInternetSales] SET [DueDate] = DATEADD(ww,@AddWeeks,[DueDate]); 223 | UPDATE [dbo].[FactInternetSales] SET [ShipDate] = DATEADD(ww,@AddWeeks,[ShipDate]); 224 | UPDATE [dbo].[FactInternetSales] SET [OrderDateKey] = YEAR([OrderDate]) * 10000 + MONTH([OrderDate]) * 100 + DAY([OrderDate]); 225 | UPDATE [dbo].[FactInternetSales] SET [DueDateKey] = YEAR([DueDate]) * 10000 + MONTH([DueDate]) * 100 + DAY([DueDate]); 226 | UPDATE [dbo].[FactInternetSales] SET [ShipDateKey] = YEAR([ShipDate]) * 10000 + MONTH([ShipDate]) * 100 + DAY([ShipDate]); 227 | UPDATE [dbo].[FactProductInventory] SET [MovementDate] = DATEADD(ww,@AddWeeks,[MovementDate]); 228 | UPDATE [dbo].[FactProductInventory] SET [DateKey] = YEAR([MovementDate]) * 10000 + MONTH([MovementDate]) * 100 + DAY([MovementDate]); 229 | UPDATE [dbo].[FactResellerSales] SET [OrderDate] = DATEADD(ww,@AddWeeks,[OrderDate]); 230 | UPDATE [dbo].[FactResellerSales] SET [DueDate] = DATEADD(ww,@AddWeeks,[DueDate]); 231 | UPDATE [dbo].[FactResellerSales] SET [ShipDate] = DATEADD(ww,@AddWeeks,[ShipDate]); 232 | UPDATE [dbo].[FactResellerSales] SET [OrderDateKey] = YEAR([OrderDate]) * 10000 + MONTH([OrderDate]) * 100 + DAY([OrderDate]); 233 | UPDATE [dbo].[FactResellerSales] SET [DueDateKey] = YEAR([DueDate]) * 10000 + MONTH([DueDate]) * 100 + DAY([DueDate]); 234 | UPDATE [dbo].[FactResellerSales] SET [ShipDateKey] = YEAR([ShipDate]) * 10000 + MONTH([ShipDate]) * 100 + DAY([ShipDate]); 235 | UPDATE [dbo].[FactSalesQuota] SET [Date] = DATEADD(ww,@AddWeeks,[Date]); 236 | UPDATE [dbo].[FactSalesQuota] SET [DateKey] = YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date]); 237 | UPDATE [dbo].[FactSurveyResponse] SET [Date] = DATEADD(ww,@AddWeeks,[Date]); 238 | UPDATE [dbo].[FactSurveyResponse] SET [DateKey] = YEAR([Date]) * 10000 + MONTH([Date]) * 100 + DAY([Date]); 239 | UPDATE [dbo].[DimCustomer] SET [BirthDate] = DATEADD(ww,@AddWeeks,[BirthDate]); 240 | UPDATE [dbo].[DimCustomer] SET [DateFirstPurchase] = DATEADD(ww,@AddWeeks,[DateFirstPurchase]); 241 | UPDATE [dbo].[DimEmployee] SET [BirthDate] = DATEADD(ww,@AddWeeks,[BirthDate]); 242 | UPDATE [dbo].[DimEmployee] SET [HireDate] = DATEADD(ww,@AddWeeks,[HireDate]); 243 | UPDATE [dbo].[DimEmployee] SET [StartDate] = DATEADD(ww,@AddWeeks,[StartDate]); 244 | UPDATE [dbo].[DimEmployee] SET [EndDate] = DATEADD(ww,@AddWeeks,[EndDate]); 245 | UPDATE [dbo].[DimProduct] SET [StartDate] = DATEADD(ww,@AddWeeks,[StartDate]); 246 | UPDATE [dbo].[DimProduct] SET [EndDate] = DATEADD(ww,@AddWeeks,[EndDate]); 247 | UPDATE [dbo].[DimReseller] SET [YearOpened] = [YearOpened] + @AddYears; 248 | UPDATE [dbo].[DimReseller] SET [FirstOrderYear] = [FirstOrderYear] + @AddYears; 249 | UPDATE [dbo].[DimReseller] SET [LastOrderYear] = [LastOrderYear] + @AddYears; 250 | UPDATE [dbo].[DimReseller] SET [OrderMonth] = MONTH(DateAdd(mm, @AddMonths, CAST('2010-' + CAST([OrderMonth] AS varchar) + '-1' AS DATETIME))); 251 | 252 | 253 | -- ADD PRIMARY KEY FOR DIMDATE 254 | ALTER TABLE [dbo].[DimDate] ADD CONSTRAINT PK_DimDate_DateKey PRIMARY KEY CLUSTERED ([DateKey]); 255 | 256 | -- ADD FOREIGN KEYS TO DATES IN FACT TABLES 257 | ALTER TABLE [dbo].[FactCallCenter] WITH NOCHECK ADD CONSTRAINT [FK_FactCallCenter_DimDate] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 258 | ALTER TABLE [dbo].[FactCurrencyRate] WITH NOCHECK ADD CONSTRAINT [FK_FactCurrencyRate_DimDate] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 259 | ALTER TABLE [dbo].[FactFinance] WITH NOCHECK ADD CONSTRAINT [FK_FactFinance_DimDate] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 260 | ALTER TABLE [dbo].[FactInternetSales] WITH NOCHECK ADD CONSTRAINT [FK_FactInternetSales_DimDate] FOREIGN KEY([OrderDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 261 | ALTER TABLE [dbo].[FactInternetSales] WITH NOCHECK ADD CONSTRAINT [FK_FactInternetSales_DimDate1] FOREIGN KEY([DueDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 262 | ALTER TABLE [dbo].[FactInternetSales] WITH NOCHECK ADD CONSTRAINT [FK_FactInternetSales_DimDate2] FOREIGN KEY([ShipDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 263 | ALTER TABLE [dbo].[FactProductInventory] WITH NOCHECK ADD CONSTRAINT [FK_FactProductInventory_DimDate] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 264 | ALTER TABLE [dbo].[FactResellerSales] WITH NOCHECK ADD CONSTRAINT [FK_FactResellerSales_DimDate] FOREIGN KEY([OrderDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 265 | ALTER TABLE [dbo].[FactResellerSales] WITH NOCHECK ADD CONSTRAINT [FK_FactResellerSales_DimDate1] FOREIGN KEY([DueDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 266 | ALTER TABLE [dbo].[FactResellerSales] WITH NOCHECK ADD CONSTRAINT [FK_FactResellerSales_DimDate2] FOREIGN KEY([ShipDateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 267 | ALTER TABLE [dbo].[FactSurveyResponse] WITH NOCHECK ADD CONSTRAINT [FK_FactSurveyResponse_DateKey] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 268 | ALTER TABLE [dbo].[FactSalesQuota] WITH NOCHECK ADD CONSTRAINT [FK_FactSalesQuota_DimDate] FOREIGN KEY([DateKey]) REFERENCES [dbo].[DimDate] ([DateKey]); 269 | 270 | -- UPDATE THE LOG TABLE WITH THE NEW FROM- AND TO- VALUES 271 | UPDATE 272 | [dbo].[TempCheckTable] 273 | SET 274 | [DateAfter] = [SourceTable].[DateMin], 275 | [ValueAfter] = [SourceTable].[DateKeyMin] 276 | FROM 277 | [dbo].[DimDate] INNER JOIN (SELECT MIN([FullDateAlternateKey]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[DimDate]) AS [SourceTable] ON 1=1 278 | WHERE 279 | [dbo].[TempCheckTable].[TableName] = 'DimDate' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 280 | 281 | UPDATE 282 | [dbo].[TempCheckTable] 283 | SET 284 | [DateAfter] = [SourceTable].[DateMax], 285 | [ValueAfter] = [SourceTable].[DateKeyMax] 286 | FROM 287 | [dbo].[DimDate] INNER JOIN (SELECT MAX([FullDateAlternateKey]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[DimDate]) AS [SourceTable] ON 1=1 288 | WHERE 289 | [dbo].[TempCheckTable].[TableName] = 'DimDate' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 290 | 291 | 292 | UPDATE 293 | [dbo].[TempCheckTable] 294 | SET 295 | [DateAfter] = [SourceTable].[BirthDateMin] 296 | FROM 297 | [dbo].[DimCustomer] INNER JOIN (SELECT MIN([BirthDate]) AS BirthDateMin FROM [dbo].[DimCustomer]) AS [SourceTable] ON 1=1 298 | WHERE 299 | [dbo].[TempCheckTable].[TableName] = 'DimCustomer' AND [dbo].[TempCheckTable].[ColName] = 'BirthDateMin'; 300 | 301 | UPDATE 302 | [dbo].[TempCheckTable] 303 | SET 304 | [DateAfter] = [SourceTable].[BirthDateMax] 305 | FROM 306 | [dbo].[DimCustomer] INNER JOIN (SELECT MAX([BirthDate]) AS BirthDateMax FROM [dbo].[DimCustomer]) AS [SourceTable] ON 1=1 307 | WHERE 308 | [dbo].[TempCheckTable].[TableName] = 'DimCustomer' AND [dbo].[TempCheckTable].[ColName] = 'BirthDateMax'; 309 | 310 | UPDATE 311 | [dbo].[TempCheckTable] 312 | SET 313 | [DateAfter] = [SourceTable].[DateFirstPurchaseMin] 314 | FROM 315 | [dbo].[DimCustomer] INNER JOIN (SELECT MIN([DateFirstPurchase]) AS DateFirstPurchaseMin FROM [dbo].[DimCustomer]) AS [SourceTable] ON 1=1 316 | WHERE 317 | [dbo].[TempCheckTable].[TableName] = 'DimCustomer' AND [dbo].[TempCheckTable].[ColName] = 'DateFirstPurchaseMin'; 318 | 319 | UPDATE 320 | [dbo].[TempCheckTable] 321 | SET 322 | [DateAfter] = [SourceTable].[DateFirstPurchaseMax] 323 | FROM 324 | [dbo].[DimCustomer] INNER JOIN (SELECT MAX([DateFirstPurchase]) AS DateFirstPurchaseMax FROM [dbo].[DimCustomer]) AS [SourceTable] ON 1=1 325 | WHERE 326 | [dbo].[TempCheckTable].[TableName] = 'DimCustomer' AND [dbo].[TempCheckTable].[ColName] = 'DateFirstPurchaseMax'; 327 | 328 | -- ================= 329 | UPDATE 330 | [dbo].[TempCheckTable] 331 | SET 332 | [DateAfter] = [SourceTable].[BirthDateMin] 333 | FROM 334 | [dbo].[DimEmployee] INNER JOIN (SELECT MIN([BirthDate]) AS BirthDateMin FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 335 | WHERE 336 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'BirthDateMin'; 337 | 338 | UPDATE 339 | [dbo].[TempCheckTable] 340 | SET 341 | [DateAfter] = [SourceTable].[BirthDateMax] 342 | FROM 343 | [dbo].[DimEmployee] INNER JOIN (SELECT MAX([BirthDate]) AS BirthDateMax FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 344 | WHERE 345 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'BirthDateMax'; 346 | 347 | UPDATE 348 | [dbo].[TempCheckTable] 349 | SET 350 | [DateAfter] = [SourceTable].[HireDateMin] 351 | FROM 352 | [dbo].[DimEmployee] INNER JOIN (SELECT MIN([HireDate]) AS HireDateMin FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 353 | WHERE 354 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'HireDateMin'; 355 | 356 | UPDATE 357 | [dbo].[TempCheckTable] 358 | SET 359 | [DateAfter] = [SourceTable].[HireDateMax] 360 | FROM 361 | [dbo].[DimEmployee] INNER JOIN (SELECT MAX([HireDate]) AS HireDateMax FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 362 | WHERE 363 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'HireDateMax'; 364 | 365 | UPDATE 366 | [dbo].[TempCheckTable] 367 | SET 368 | [DateAfter] = [SourceTable].[StartDateMin] 369 | FROM 370 | [dbo].[DimEmployee] INNER JOIN (SELECT MIN([StartDate]) AS StartDateMin FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 371 | WHERE 372 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'StartDateMin'; 373 | 374 | UPDATE 375 | [dbo].[TempCheckTable] 376 | SET 377 | [DateAfter] = [SourceTable].[StartDateMax] 378 | FROM 379 | [dbo].[DimEmployee] INNER JOIN (SELECT MAX([StartDate]) AS StartDateMax FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 380 | WHERE 381 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'StartDateMax'; 382 | 383 | UPDATE 384 | [dbo].[TempCheckTable] 385 | SET 386 | [DateAfter] = [SourceTable].[EndDateMin] 387 | FROM 388 | [dbo].[DimEmployee] INNER JOIN (SELECT MIN([EndDate]) AS EndDateMin FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 389 | WHERE 390 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'EndDateMin'; 391 | 392 | UPDATE 393 | [dbo].[TempCheckTable] 394 | SET 395 | [DateAfter] = [SourceTable].[EndDateMax] 396 | FROM 397 | [dbo].[DimEmployee] INNER JOIN (SELECT MAX([EndDate]) AS EndDateMax FROM [dbo].[DimEmployee]) AS [SourceTable] ON 1=1 398 | WHERE 399 | [dbo].[TempCheckTable].[TableName] = 'DimEmployee' AND [dbo].[TempCheckTable].[ColName] = 'EndDateMax'; 400 | 401 | -- ================================== 402 | UPDATE 403 | [dbo].[TempCheckTable] 404 | SET 405 | [DateAfter] = [SourceTable].[StartDateMin] 406 | FROM 407 | [dbo].[DimProduct] INNER JOIN (SELECT MIN([StartDate]) AS StartDateMin FROM [dbo].[DimProduct]) AS [SourceTable] ON 1=1 408 | WHERE 409 | [dbo].[TempCheckTable].[TableName] = 'DimProduct' AND [dbo].[TempCheckTable].[ColName] = 'StartDateMin'; 410 | 411 | UPDATE 412 | [dbo].[TempCheckTable] 413 | SET 414 | [DateAfter] = [SourceTable].[StartDateMax] 415 | FROM 416 | [dbo].[DimProduct] INNER JOIN (SELECT MAX([StartDate]) AS StartDateMax FROM [dbo].[DimProduct]) AS [SourceTable] ON 1=1 417 | WHERE 418 | [dbo].[TempCheckTable].[TableName] = 'DimProduct' AND [dbo].[TempCheckTable].[ColName] = 'StartDateMax'; 419 | 420 | UPDATE 421 | [dbo].[TempCheckTable] 422 | SET 423 | [DateAfter] = [SourceTable].[EndDateMin] 424 | FROM 425 | [dbo].[DimProduct] INNER JOIN (SELECT MIN([EndDate]) AS EndDateMin FROM [dbo].[DimProduct]) AS [SourceTable] ON 1=1 426 | WHERE 427 | [dbo].[TempCheckTable].[TableName] = 'DimProduct' AND [dbo].[TempCheckTable].[ColName] = 'EndDateMin'; 428 | 429 | UPDATE 430 | [dbo].[TempCheckTable] 431 | SET 432 | [DateAfter] = [SourceTable].[EndDateMax] 433 | FROM 434 | [dbo].[DimProduct] INNER JOIN (SELECT MAX([EndDate]) AS EndDateMax FROM [dbo].[DimProduct]) AS [SourceTable] ON 1=1 435 | WHERE 436 | [dbo].[TempCheckTable].[TableName] = 'DimProduct' AND [dbo].[TempCheckTable].[ColName] = 'EndDateMax'; 437 | 438 | -- ================================== 439 | UPDATE 440 | [dbo].[TempCheckTable] 441 | SET 442 | [ValueAfter] = [SourceTable].[YearOpenedMin] 443 | FROM 444 | [dbo].[DimReseller] INNER JOIN (SELECT MIN([YearOpened]) AS YearOpenedMin FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 445 | WHERE 446 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'YearOpenedMin'; 447 | 448 | UPDATE 449 | [dbo].[TempCheckTable] 450 | SET 451 | [ValueAfter] = [SourceTable].[YearOpenedMax] 452 | FROM 453 | [dbo].[DimReseller] INNER JOIN (SELECT MAX([YearOpened]) AS YearOpenedMax FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 454 | WHERE 455 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'YearOpenedMax'; 456 | --ERROR 457 | UPDATE 458 | [dbo].[TempCheckTable] 459 | SET 460 | [ValueAfter] = [SourceTable].[FirstOrderYearMin] 461 | FROM 462 | [dbo].[DimReseller] INNER JOIN (SELECT MIN([FirstOrderYear]) AS FirstOrderYearMin FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 463 | WHERE 464 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'FirstOrderYearMin'; 465 | 466 | UPDATE 467 | [dbo].[TempCheckTable] 468 | SET 469 | [ValueAfter] = [SourceTable].[FirstOrderYearMax] 470 | FROM 471 | [dbo].[DimReseller] INNER JOIN (SELECT MAX([FirstOrderYear]) AS FirstOrderYearMax FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 472 | WHERE 473 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'FirstOrderYearMax'; 474 | 475 | UPDATE 476 | [dbo].[TempCheckTable] 477 | SET 478 | [ValueAfter] = [SourceTable].[LastOrderYearMin] 479 | FROM 480 | [dbo].[DimReseller] INNER JOIN (SELECT MIN([LastOrderYear]) AS LastOrderYearMin FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 481 | WHERE 482 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'LastOrderYearMin'; 483 | 484 | UPDATE 485 | [dbo].[TempCheckTable] 486 | SET 487 | [ValueAfter] = [SourceTable].[LastOrderYearMax] 488 | FROM 489 | [dbo].[DimReseller] INNER JOIN (SELECT MAX([LastOrderYear]) AS LastOrderYearMax FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 490 | WHERE 491 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'LastOrderYearMax'; 492 | 493 | UPDATE 494 | [dbo].[TempCheckTable] 495 | SET 496 | [ValueAfter] = [SourceTable].[OrderMonthMin] 497 | FROM 498 | [dbo].[DimReseller] INNER JOIN (SELECT MIN([OrderMonth]) AS OrderMonthMin FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 499 | WHERE 500 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'OrderMonthMin'; 501 | 502 | UPDATE 503 | [dbo].[TempCheckTable] 504 | SET 505 | [ValueAfter] = [SourceTable].[OrderMonthMax] 506 | FROM 507 | [dbo].[DimReseller] INNER JOIN (SELECT MAX([OrderMonth]) AS OrderMonthMax FROM [dbo].[DimReseller]) AS [SourceTable] ON 1=1 508 | WHERE 509 | [dbo].[TempCheckTable].[TableName] = 'DimReseller' AND [dbo].[TempCheckTable].[ColName] = 'OrderMonthMax'; 510 | 511 | --============================================ 512 | 513 | UPDATE 514 | [dbo].[TempCheckTable] 515 | SET 516 | [DateAfter] = [SourceTable].[DateMin], 517 | [ValueAfter] = [SourceTable].[DateKeyMin] 518 | FROM 519 | [dbo].[FactCallCenter] INNER JOIN (SELECT MIN([Date]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactCallCenter]) AS [SourceTable] ON 1=1 520 | WHERE 521 | [dbo].[TempCheckTable].[TableName] = 'FactCallCenter' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 522 | 523 | UPDATE 524 | [dbo].[TempCheckTable] 525 | SET 526 | [DateAfter] = [SourceTable].[DateMax], 527 | [ValueAfter] = [SourceTable].[DateKeyMax] 528 | FROM 529 | [dbo].[FactCallCenter] INNER JOIN (SELECT MAX([Date]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactCallCenter]) AS [SourceTable] ON 1=1 530 | WHERE 531 | [dbo].[TempCheckTable].[TableName] = 'FactCallCenter' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 532 | 533 | --============================================ 534 | 535 | UPDATE 536 | [dbo].[TempCheckTable] 537 | SET 538 | [DateAfter] = [SourceTable].[DateMin], 539 | [ValueAfter] = [SourceTable].[DateKeyMin] 540 | FROM 541 | [dbo].[FactCurrencyRate] INNER JOIN (SELECT MIN([Date]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactCurrencyRate]) AS [SourceTable] ON 1=1 542 | WHERE 543 | [dbo].[TempCheckTable].[TableName] = 'FactCurrencyRate' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 544 | 545 | UPDATE 546 | [dbo].[TempCheckTable] 547 | SET 548 | [DateAfter] = [SourceTable].[DateMax], 549 | [ValueAfter] = [SourceTable].[DateKeyMax] 550 | FROM 551 | [dbo].[FactCurrencyRate] INNER JOIN (SELECT MAX([Date]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactCurrencyRate]) AS [SourceTable] ON 1=1 552 | WHERE 553 | [dbo].[TempCheckTable].[TableName] = 'FactCurrencyRate' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 554 | 555 | 556 | --============================================ 557 | 558 | UPDATE 559 | [dbo].[TempCheckTable] 560 | SET 561 | [DateAfter] = [SourceTable].[DateMin], 562 | [ValueAfter] = [SourceTable].[DateKeyMin] 563 | FROM 564 | [dbo].[FactFinance] INNER JOIN (SELECT MIN([Date]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactFinance]) AS [SourceTable] ON 1=1 565 | WHERE 566 | [dbo].[TempCheckTable].[TableName] = 'FactFinance' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 567 | 568 | UPDATE 569 | [dbo].[TempCheckTable] 570 | SET 571 | [DateAfter] = [SourceTable].[DateMax], 572 | [ValueAfter] = [SourceTable].[DateKeyMax] 573 | FROM 574 | [dbo].[FactFinance] INNER JOIN (SELECT MAX([Date]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactFinance]) AS [SourceTable] ON 1=1 575 | WHERE 576 | [dbo].[TempCheckTable].[TableName] = 'FactFinance' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 577 | 578 | --============================================ 579 | 580 | UPDATE 581 | [dbo].[TempCheckTable] 582 | SET 583 | [DateAfter] = [SourceTable].[OrderDateMin], 584 | [ValueAfter] = [SourceTable].[OrderDateKeyMin] 585 | FROM 586 | [dbo].[FactInternetSales] INNER JOIN (SELECT MIN([OrderDate]) AS OrderDateMin, MIN([OrderDateKey]) AS OrderDateKeyMin FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 587 | WHERE 588 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'OrderDateMin'; 589 | 590 | UPDATE 591 | [dbo].[TempCheckTable] 592 | SET 593 | [DateAfter] = [SourceTable].[OrderDateMax], 594 | [ValueAfter] = [SourceTable].[OrderDateKeyMax] 595 | FROM 596 | [dbo].[FactInternetSales] INNER JOIN (SELECT MAX([OrderDate]) AS OrderDateMax, MAX([OrderDateKey]) AS OrderDateKeyMax FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 597 | WHERE 598 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'OrderDateMax'; 599 | 600 | UPDATE 601 | [dbo].[TempCheckTable] 602 | SET 603 | [DateAfter] = [SourceTable].[DueDateMin], 604 | [ValueAfter] = [SourceTable].[DueDateKeyMin] 605 | FROM 606 | [dbo].[FactInternetSales] INNER JOIN (SELECT MIN([DueDate]) AS DueDateMin, MIN([DueDateKey]) AS DueDateKeyMin FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 607 | WHERE 608 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'DueDateMin'; 609 | 610 | UPDATE 611 | [dbo].[TempCheckTable] 612 | SET 613 | [DateAfter] = [SourceTable].[DueDateMax], 614 | [ValueAfter] = [SourceTable].[DueDateKeyMax] 615 | FROM 616 | [dbo].[FactInternetSales] INNER JOIN (SELECT MAX([DueDate]) AS DueDateMax, MAX([DueDateKey]) AS DueDateKeyMax FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 617 | WHERE 618 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'DueDateMax'; 619 | 620 | 621 | UPDATE 622 | [dbo].[TempCheckTable] 623 | SET 624 | [DateAfter] = [SourceTable].[ShipDateMin], 625 | [ValueAfter] = [SourceTable].[ShipDateKeyMin] 626 | FROM 627 | [dbo].[FactInternetSales] INNER JOIN (SELECT MIN([ShipDate]) AS ShipDateMin, MIN([ShipDateKey]) AS ShipDateKeyMin FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 628 | WHERE 629 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'ShipDateMin'; 630 | 631 | UPDATE 632 | [dbo].[TempCheckTable] 633 | SET 634 | [DateAfter] = [SourceTable].[ShipDateMax], 635 | [ValueAfter] = [SourceTable].[ShipDateKeyMax] 636 | FROM 637 | [dbo].[FactInternetSales] INNER JOIN (SELECT MAX([ShipDate]) AS ShipDateMax, MAX([ShipDateKey]) AS ShipDateKeyMax FROM [dbo].[FactInternetSales]) AS [SourceTable] ON 1=1 638 | WHERE 639 | [dbo].[TempCheckTable].[TableName] = 'FactInternetSales' AND [dbo].[TempCheckTable].[ColName] = 'ShipDateMax'; 640 | 641 | -- ================================================= 642 | UPDATE 643 | [dbo].[TempCheckTable] 644 | SET 645 | [DateAfter] = [SourceTable].[MovementDateMin], 646 | [ValueAfter] = [SourceTable].[DateKeyMin] 647 | FROM 648 | [dbo].[FactProductInventory] INNER JOIN (SELECT MIN([MovementDate]) AS MovementDateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactProductInventory]) AS [SourceTable] ON 1=1 649 | WHERE 650 | [dbo].[TempCheckTable].[TableName] = 'FactProductInventory' AND [dbo].[TempCheckTable].[ColName] = 'MovementDateMin'; 651 | 652 | UPDATE 653 | [dbo].[TempCheckTable] 654 | SET 655 | [DateAfter] = [SourceTable].[MovementDateMax], 656 | [ValueAfter] = [SourceTable].[DateKeyMax] 657 | FROM 658 | [dbo].[FactProductInventory] INNER JOIN (SELECT MAX([MovementDate]) AS MovementDateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactProductInventory]) AS [SourceTable] ON 1=1 659 | WHERE 660 | [dbo].[TempCheckTable].[TableName] = 'FactProductInventory' AND [dbo].[TempCheckTable].[ColName] = 'MovementDateMax'; 661 | 662 | --============================================ 663 | 664 | UPDATE 665 | [dbo].[TempCheckTable] 666 | SET 667 | [DateAfter] = [SourceTable].[OrderDateMin], 668 | [ValueAfter] = [SourceTable].[OrderDateKeyMin] 669 | FROM 670 | [dbo].[FactResellerSales] INNER JOIN (SELECT MIN([OrderDate]) AS OrderDateMin, MIN([OrderDateKey]) AS OrderDateKeyMin FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 671 | WHERE 672 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'OrderDateMin'; 673 | 674 | UPDATE 675 | [dbo].[TempCheckTable] 676 | SET 677 | [DateAfter] = [SourceTable].[OrderDateMax], 678 | [ValueAfter] = [SourceTable].[OrderDateKeyMax] 679 | FROM 680 | [dbo].[FactResellerSales] INNER JOIN (SELECT MAX([OrderDate]) AS OrderDateMax, MAX([OrderDateKey]) AS OrderDateKeyMax FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 681 | WHERE 682 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'OrderDateMax'; 683 | 684 | UPDATE 685 | [dbo].[TempCheckTable] 686 | SET 687 | [DateAfter] = [SourceTable].[DueDateMin], 688 | [ValueAfter] = [SourceTable].[DueDateKeyMin] 689 | FROM 690 | [dbo].[FactResellerSales] INNER JOIN (SELECT MIN([DueDate]) AS DueDateMin, MIN([DueDateKey]) AS DueDateKeyMin FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 691 | WHERE 692 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'DueDateMin'; 693 | 694 | UPDATE 695 | [dbo].[TempCheckTable] 696 | SET 697 | [DateAfter] = [SourceTable].[DueDateMax], 698 | [ValueAfter] = [SourceTable].[DueDateKeyMax] 699 | FROM 700 | [dbo].[FactResellerSales] INNER JOIN (SELECT MAX([DueDate]) AS DueDateMax, MAX([DueDateKey]) AS DueDateKeyMax FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 701 | WHERE 702 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'DueDateMax'; 703 | 704 | UPDATE 705 | [dbo].[TempCheckTable] 706 | SET 707 | [DateAfter] = [SourceTable].[ShipDateMin], 708 | [ValueAfter] = [SourceTable].[ShipDateKeyMin] 709 | FROM 710 | [dbo].[FactResellerSales] INNER JOIN (SELECT MIN([ShipDate]) AS ShipDateMin, MIN([ShipDateKey]) AS ShipDateKeyMin FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 711 | WHERE 712 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'ShipDateMin'; 713 | 714 | UPDATE 715 | [dbo].[TempCheckTable] 716 | SET 717 | [DateAfter] = [SourceTable].[ShipDateMax], 718 | [ValueAfter] = [SourceTable].[ShipDateKeyMax] 719 | FROM 720 | [dbo].[FactResellerSales] INNER JOIN (SELECT MAX([ShipDate]) AS ShipDateMax, MAX([ShipDateKey]) AS ShipDateKeyMax FROM [dbo].[FactResellerSales]) AS [SourceTable] ON 1=1 721 | WHERE 722 | [dbo].[TempCheckTable].[TableName] = 'FactResellerSales' AND [dbo].[TempCheckTable].[ColName] = 'ShipDateMax'; 723 | 724 | --================================= 725 | UPDATE 726 | [dbo].[TempCheckTable] 727 | SET 728 | [DateAfter] = [SourceTable].[DateMin], 729 | [ValueAfter] = [SourceTable].[DateKeyMin] 730 | FROM 731 | [dbo].[FactSalesQuota] INNER JOIN (SELECT MIN([Date]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactSalesQuota]) AS [SourceTable] ON 1=1 732 | WHERE 733 | [dbo].[TempCheckTable].[TableName] = 'FactSalesQuota' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 734 | 735 | UPDATE 736 | [dbo].[TempCheckTable] 737 | SET 738 | [DateAfter] = [SourceTable].[DateMax], 739 | [ValueAfter] = [SourceTable].[DateKeyMax] 740 | FROM 741 | [dbo].[FactSalesQuota] INNER JOIN (SELECT MAX([Date]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactSalesQuota]) AS [SourceTable] ON 1=1 742 | WHERE 743 | [dbo].[TempCheckTable].[TableName] = 'FactSalesQuota' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 744 | 745 | --================================= 746 | UPDATE 747 | [dbo].[TempCheckTable] 748 | SET 749 | [DateAfter] = [SourceTable].[DateMin], 750 | [ValueAfter] = [SourceTable].[DateKeyMin] 751 | FROM 752 | [dbo].[FactSurveyResponse] INNER JOIN (SELECT MIN([Date]) AS DateMin, MIN([DateKey]) AS DateKeyMin FROM [dbo].[FactSurveyResponse]) AS [SourceTable] ON 1=1 753 | WHERE 754 | [dbo].[TempCheckTable].[TableName] = 'FactSurveyResponse' AND [dbo].[TempCheckTable].[ColName] = 'DateMin'; 755 | 756 | UPDATE 757 | [dbo].[TempCheckTable] 758 | SET 759 | [DateAfter] = [SourceTable].[DateMax], 760 | [ValueAfter] = [SourceTable].[DateKeyMax] 761 | FROM 762 | [dbo].[FactSurveyResponse] INNER JOIN (SELECT MAX([Date]) AS DateMax, MAX([DateKey]) AS DateKeyMax FROM [dbo].[FactSurveyResponse]) AS [SourceTable] ON 1=1 763 | WHERE 764 | [dbo].[TempCheckTable].[TableName] = 'FactSurveyResponse' AND [dbo].[TempCheckTable].[ColName] = 'DateMax'; 765 | 766 | -- FINAL CHECK OF THE CHANGES 767 | SELECT * FROM [dbo].[TempCheckTable]; 768 | END 769 | GO -------------------------------------------------------------------------------- /CSV Files/geography.csv: -------------------------------------------------------------------------------- 1 | GeographyKey,City,CountryName,SalesTerritoryRegion,SalesTerritoryGroup,PostalCode,SalesTerritoryKey 2 | 1,Alexandria,Australia,Australia,Pacific,2015,9 3 | 2,Coffs Harbour,Australia,Australia,Pacific,2450,9 4 | 3,Darlinghurst,Australia,Australia,Pacific,2010,9 5 | 4,Goulburn,Australia,Australia,Pacific,2580,9 6 | 5,Lane Cove,Australia,Australia,Pacific,1597,9 7 | 6,Lavender Bay,Australia,Australia,Pacific,2060,9 8 | 7,Malabar,Australia,Australia,Pacific,2036,9 9 | 8,Matraville,Australia,Australia,Pacific,2036,9 10 | 9,Milsons Point,Australia,Australia,Pacific,2061,9 11 | 10,Newcastle,Australia,Australia,Pacific,2300,9 12 | 11,North Ryde,Australia,Australia,Pacific,2113,9 13 | 12,North Sydney,Australia,Australia,Pacific,2055,9 14 | 13,Port Macquarie,Australia,Australia,Pacific,2444,9 15 | 14,Rhodes,Australia,Australia,Pacific,2138,9 16 | 15,Silverwater,Australia,Australia,Pacific,2264,9 17 | 16,Springwood,Australia,Australia,Pacific,2777,9 18 | 17,St. Leonards,Australia,Australia,Pacific,2065,9 19 | 18,Sydney,Australia,Australia,Pacific,1002,9 20 | 19,Wollongong,Australia,Australia,Pacific,2500,9 21 | 20,Brisbane,Australia,Australia,Pacific,4000,9 22 | 21,Caloundra,Australia,Australia,Pacific,4551,9 23 | 22,East Brisbane,Australia,Australia,Pacific,4169,9 24 | 23,Gold Coast,Australia,Australia,Pacific,4217,9 25 | 24,Hawthorne,Australia,Australia,Pacific,4171,9 26 | 25,Hervey Bay,Australia,Australia,Pacific,4655,9 27 | 26,Rockhampton,Australia,Australia,Pacific,4700,9 28 | 27,Townsville,Australia,Australia,Pacific,4810,9 29 | 28,Cloverdale,Australia,Australia,Pacific,6105,9 30 | 29,Findon,Australia,Australia,Pacific,5023,9 31 | 30,Perth,Australia,Australia,Pacific,6006,9 32 | 31,Hobart,Australia,Australia,Pacific,7001,9 33 | 32,Bendigo,Australia,Australia,Pacific,3550,9 34 | 33,Cranbourne,Australia,Australia,Pacific,3977,9 35 | 34,Geelong,Australia,Australia,Pacific,3220,9 36 | 35,Melbourne,Australia,Australia,Pacific,3000,9 37 | 36,Melton,Australia,Australia,Pacific,3337,9 38 | 37,Seaford,Australia,Australia,Pacific,3198,9 39 | 38,South Melbourne,Australia,Australia,Pacific,3205,9 40 | 39,Sunbury,Australia,Australia,Pacific,3429,9 41 | 40,Warrnambool,Australia,Australia,Pacific,3280,9 42 | 41,Calgary,Canada,Canada,North America,T2P 2G8,6 43 | 42,Edmonton,Canada,Canada,North America,T5,6 44 | 43,Burnaby,Canada,Canada,North America,V3J 6Z3,6 45 | 44,Burnaby,Canada,Canada,North America,V5A 3A6,6 46 | 45,Burnaby,Canada,Canada,North America,V5A 4X1,6 47 | 46,Burnaby,Canada,Canada,North America,V5G 4S4,6 48 | 47,Burnaby,Canada,Canada,North America,V5G 4W1,6 49 | 48,Burnaby,Canada,Canada,North America,V5H 3Z7,6 50 | 49,Cliffside,Canada,Canada,North America,V8Y 1L1,6 51 | 50,Haney,Canada,Canada,North America,V2W 1W2,6 52 | 51,Langford,Canada,Canada,North America,V9,6 53 | 52,Langley,Canada,Canada,North America,V3A 4R2,6 54 | 53,Metchosin,Canada,Canada,North America,V9,6 55 | 54,N. Vancouver,Canada,Canada,North America,V7L 4J4,6 56 | 55,Newton,Canada,Canada,North America,V2L3W8,6 57 | 56,Newton,Canada,Canada,North America,V2M1N7,6 58 | 57,Newton,Canada,Canada,North America,V2M1P1,6 59 | 58,Newton,Canada,Canada,North America,V2M1S6,6 60 | 59,Oak Bay,Canada,Canada,North America,V8P,6 61 | 60,Port Hammond,Canada,Canada,North America,V6B 3P7,6 62 | 61,Richmond,Canada,Canada,North America,V6B 3P7,6 63 | 62,Royal Oak,Canada,Canada,North America,V8X,6 64 | 63,Shawnee,Canada,Canada,North America,V8Z 4N5,6 65 | 64,Shawnee,Canada,Canada,North America,V9B 2C3,6 66 | 65,Shawnee,Canada,Canada,North America,V9B 5T2,6 67 | 66,Sooke,Canada,Canada,North America,V0,6 68 | 67,Surrey,Canada,Canada,North America,V3T 4W3,6 69 | 68,Vancouver,Canada,Canada,North America,V7L 4J4,6 70 | 69,Victoria,Canada,Canada,North America,V8V,6 71 | 70,Westminster,Canada,Canada,North America,V3L 1E7,6 72 | 71,Westminster,Canada,Canada,North America,V3L 1H4,6 73 | 72,Winnipeg,Canada,Canada,North America,R3,6 74 | 73,Saint John,Canada,Canada,North America,E2P 1E3,6 75 | 74,Aurora,Canada,Canada,North America,L4G 7N6,6 76 | 75,Barrie,Canada,Canada,North America,L4N,6 77 | 76,Brampton,Canada,Canada,North America,L6W 2T7,6 78 | 77,Chalk Riber,Canada,Canada,North America,K0J 1J0,6 79 | 78,Etobicoke,Canada,Canada,North America,M9W 3P3,6 80 | 79,Kanata,Canada,Canada,North America,K2L 1H5,6 81 | 80,Kingston,Canada,Canada,North America,7L,6 82 | 81,Markham,Canada,Canada,North America,L3S 3K2,6 83 | 82,Mississauga,Canada,Canada,North America,L4W 5J3,6 84 | 83,Mississauga,Canada,Canada,North America,L5A 1H6,6 85 | 84,Mississauga,Canada,Canada,North America,L5B 3V4,6 86 | 85,Nepean,Canada,Canada,North America,K2J 2W5,6 87 | 86,North York,Canada,Canada,North America,M4C 4K6,6 88 | 87,Ottawa,Canada,Canada,North America,K4B 1S1,6 89 | 88,Ottawa,Canada,Canada,North America,K4B 1S2,6 90 | 89,Ottawa,Canada,Canada,North America,K4B 1S3,6 91 | 90,Ottawa,Canada,Canada,North America,K4B 1T7,6 92 | 91,Richmond Hill,Canada,Canada,North America,L4E 3M5,6 93 | 92,Scarborough,Canada,Canada,North America,M1V 4M2,6 94 | 93,Toronto,Canada,Canada,North America,M4B 1V4,6 95 | 94,Toronto,Canada,Canada,North America,M4B 1V5,6 96 | 95,Toronto,Canada,Canada,North America,M4B 1V6,6 97 | 96,Toronto,Canada,Canada,North America,M4B 1V7,6 98 | 97,Vancouver,Canada,Canada,North America,V5T 1Y9,6 99 | 98,Waterloo,Canada,Canada,North America,N2V,6 100 | 99,Weston,Canada,Canada,North America,M9V 4W3,6 101 | 100,Brossard,Canada,Canada,North America,J4Z 1C5,6 102 | 101,Brossard,Canada,Canada,North America,J4Z 1R4,6 103 | 102,Dorval,Canada,Canada,North America,H9P 1H1,6 104 | 103,Hull,Canada,Canada,North America,8Y,6 105 | 104,Montreal,Canada,Canada,North America,H1Y 2H3,6 106 | 105,Montreal,Canada,Canada,North America,H1Y 2H5,6 107 | 106,Montreal,Canada,Canada,North America,H1Y 2H7,6 108 | 107,Montreal,Canada,Canada,North America,H1Y 2H8,6 109 | 108,Outremont,Canada,Canada,North America,H1Y 2G5,6 110 | 109,Pnot-Rouge,Canada,Canada,North America,J1E 2T7,6 111 | 110,Quebec,Canada,Canada,North America,G1R,6 112 | 111,Sainte-Foy,Canada,Canada,North America,G1W,6 113 | 112,Sillery,Canada,Canada,North America,G1T,6 114 | 113,Ville De'anjou,Canada,Canada,North America,J1G 2R3,6 115 | 114,Berlin,Germany,Germany,Europe,14197,8 116 | 115,Eilenburg,Germany,Germany,Europe,4838,8 117 | 116,Augsburg,Germany,Germany,Europe,86150,8 118 | 117,Erlangen,Germany,Germany,Europe,91054,8 119 | 118,Frankfurt,Germany,Germany,Europe,91480,8 120 | 119,Grevenbroich,Germany,Germany,Europe,41485,8 121 | 120,Hof,Germany,Germany,Europe,95010,8 122 | 121,Ingolstadt,Germany,Germany,Europe,85049,8 123 | 122,Bad Soden,Germany,Germany,Europe,65800,8 124 | 123,Berlin,Germany,Germany,Europe,12171,8 125 | 124,Berlin,Germany,Germany,Europe,13441,8 126 | 125,Berlin,Germany,Germany,Europe,14111,8 127 | 126,Berlin,Germany,Germany,Europe,14129,8 128 | 127,Darmstadt,Germany,Germany,Europe,64283,8 129 | 128,Dresden,Germany,Germany,Europe,1071,8 130 | 129,Duesseldorf,Germany,Germany,Europe,40434,8 131 | 130,Duesseldorf,Germany,Germany,Europe,40605,8 132 | 131,Frankfurt,Germany,Germany,Europe,60323,8 133 | 132,Hamburg,Germany,Germany,Europe,22001,8 134 | 133,Kassel,Germany,Germany,Europe,34117,8 135 | 134,München,Germany,Germany,Europe,80074,8 136 | 135,Salzgitter,Germany,Germany,Europe,38231,8 137 | 136,Ascheim,Germany,Germany,Europe,86171,8 138 | 137,Augsburg,Germany,Germany,Europe,86171,8 139 | 138,Berlin,Germany,Germany,Europe,10210,8 140 | 139,Berlin,Germany,Germany,Europe,10791,8 141 | 140,Berlin,Germany,Germany,Europe,12311,8 142 | 141,Berlin,Germany,Germany,Europe,14111,8 143 | 142,Bonn,Germany,Germany,Europe,53001,8 144 | 143,Bonn,Germany,Germany,Europe,53131,8 145 | 144,Essen,Germany,Germany,Europe,45001,8 146 | 145,Frankfurt am Main,Germany,Germany,Europe,60082,8 147 | 146,Frankfurt am Main,Germany,Germany,Europe,60355,8 148 | 147,Hamburg,Germany,Germany,Europe,20354,8 149 | 148,Muehlheim,Germany,Germany,Europe,63151,8 150 | 149,Mühlheim,Germany,Germany,Europe,63151,8 151 | 150,München,Germany,Germany,Europe,80074,8 152 | 151,Paderborn,Germany,Germany,Europe,33041,8 153 | 152,Berlin,Germany,Germany,Europe,10501,8 154 | 153,Berlin,Germany,Germany,Europe,14197,8 155 | 154,Bonn,Germany,Germany,Europe,53131,8 156 | 155,Bottrop,Germany,Germany,Europe,46236,8 157 | 156,Braunschweig,Germany,Germany,Europe,38001,8 158 | 157,Hannover,Germany,Germany,Europe,30601,8 159 | 158,Leipzig,Germany,Germany,Europe,4139,8 160 | 159,München,Germany,Germany,Europe,80074,8 161 | 160,Paderborn,Germany,Germany,Europe,33098,8 162 | 161,Solingen,Germany,Germany,Europe,42651,8 163 | 162,Werne,Germany,Germany,Europe,59368,8 164 | 163,Berlin,Germany,Germany,Europe,12171,8 165 | 164,Berlin,Germany,Germany,Europe,12311,8 166 | 165,Berlin,Germany,Germany,Europe,14197,8 167 | 166,Frankfurt am Main,Germany,Germany,Europe,60061,8 168 | 167,Frankfurt am Main,Germany,Germany,Europe,60075,8 169 | 168,Kiel,Germany,Germany,Europe,24044,8 170 | 169,München,Germany,Germany,Europe,48001,8 171 | 170,Münster,Germany,Germany,Europe,48001,8 172 | 171,Neunkirchen,Germany,Germany,Europe,66578,8 173 | 172,Offenbach,Germany,Germany,Europe,63009,8 174 | 173,Poing,Germany,Germany,Europe,66041,8 175 | 174,Saarbrücken,Germany,Germany,Europe,66001,8 176 | 175,Saarlouis,Germany,Germany,Europe,66740,8 177 | 176,Stuttgart,Germany,Germany,Europe,70452,8 178 | 177,Stuttgart,Germany,Germany,Europe,70511,8 179 | 178,Sulzbach Taunus,Germany,Germany,Europe,66272,8 180 | 179,Saint Ouen,France,France,Europe,17490,7 181 | 180,Colomiers,France,France,Europe,31770,7 182 | 181,Aujan Mournede,France,France,Europe,32300,7 183 | 182,Saint Ouen,France,France,Europe,41100,7 184 | 183,Orleans,France,France,Europe,45000,7 185 | 184,Metz,France,France,Europe,57000,7 186 | 185,Croix,France,France,Europe,59170,7 187 | 186,Dunkerque,France,France,Europe,59140,7 188 | 187,Lille,France,France,Europe,59000,7 189 | 188,Roncq,France,France,Europe,59223,7 190 | 189,Roubaix,France,France,Europe,59100,7 191 | 190,Villeneuve-d'Ascq,France,France,Europe,59491,7 192 | 191,Boulogne-sur-Mer,France,France,Europe,62200,7 193 | 192,Paris,France,France,Europe,75002,7 194 | 193,Paris,France,France,Europe,75003,7 195 | 194,Paris,France,France,Europe,75005,7 196 | 195,Paris,France,France,Europe,75006,7 197 | 196,Paris,France,France,Europe,75007,7 198 | 197,Paris,France,France,Europe,75008,7 199 | 198,Paris,France,France,Europe,75009,7 200 | 199,Paris,France,France,Europe,75010,7 201 | 200,Paris,France,France,Europe,75012,7 202 | 201,Paris,France,France,Europe,75013,7 203 | 202,Paris,France,France,Europe,75016,7 204 | 203,Paris,France,France,Europe,75017,7 205 | 204,Paris,France,France,Europe,75019,7 206 | 205,Lieusaint,France,France,Europe,77127,7 207 | 206,Roissy en Brie,France,France,Europe,77680,7 208 | 207,Chatou,France,France,Europe,78400,7 209 | 208,Saint Germain en Laye,France,France,Europe,78100,7 210 | 209,Versailles,France,France,Europe,78000,7 211 | 210,Saint Ouen,France,France,Europe,80610,7 212 | 211,Les Ulis,France,France,Europe,91940,7 213 | 212,Morangis,France,France,Europe,91420,7 214 | 213,Verrieres Le Buisson,France,France,Europe,91370,7 215 | 214,Boulogne-Billancourt,France,France,Europe,92100,7 216 | 215,Colombes,France,France,Europe,92700,7 217 | 216,Courbevoie,France,France,Europe,92400,7 218 | 217,Paris La Defense,France,France,Europe,92081,7 219 | 218,Sèvres,France,France,Europe,92310,7 220 | 219,Suresnes,France,France,Europe,92150,7 221 | 220,Bobigny,France,France,Europe,93000,7 222 | 221,Drancy,France,France,Europe,93700,7 223 | 222,Pantin,France,France,Europe,93500,7 224 | 223,Saint-Denis,France,France,Europe,93400,7 225 | 224,Tremblay-en-France,France,France,Europe,93290,7 226 | 225,Orly,France,France,Europe,94310,7 227 | 226,Cergy,France,France,Europe,95000,7 228 | 227,Abingdon,United Kingdom,United Kingdom,Europe,OX14 4SE,10 229 | 228,Basingstoke Hants,United Kingdom,United Kingdom,Europe,RG24 8PL,10 230 | 229,Berks,United Kingdom,United Kingdom,Europe,SL4 1RH,10 231 | 230,Berkshire,United Kingdom,United Kingdom,Europe,RG11 5TP,10 232 | 231,Billericay,United Kingdom,United Kingdom,Europe,CM11,10 233 | 232,Birmingham,United Kingdom,United Kingdom,Europe,B29 6SL,10 234 | 233,Bracknell,United Kingdom,United Kingdom,Europe,RG12 8TB,10 235 | 234,Bury,United Kingdom,United Kingdom,Europe,PE17,10 236 | 235,Cambridge,United Kingdom,United Kingdom,Europe,CB4 4BZ,10 237 | 236,Cheltenham,United Kingdom,United Kingdom,Europe,GL50,10 238 | 237,Esher-Molesey,United Kingdom,United Kingdom,Europe,EM15,10 239 | 238,Gateshead,United Kingdom,United Kingdom,Europe,GA10,10 240 | 239,Gloucestershire,United Kingdom,United Kingdom,Europe,GL7 1RY,10 241 | 240,High Wycombe,United Kingdom,United Kingdom,Europe,HP10 9QY,10 242 | 241,Kirkby,United Kingdom,United Kingdom,Europe,KB9,10 243 | 242,Lancaster,United Kingdom,United Kingdom,Europe,LA1 1LN,10 244 | 243,Leeds,United Kingdom,United Kingdom,Europe,LE18,10 245 | 244,London,United Kingdom,United Kingdom,Europe,C2H 7AU,10 246 | 245,London,United Kingdom,United Kingdom,Europe,E17 6JF,10 247 | 246,London,United Kingdom,United Kingdom,Europe,EC1R 0DU,10 248 | 247,London,United Kingdom,United Kingdom,Europe,SE1 8HL,10 249 | 248,London,United Kingdom,United Kingdom,Europe,SW19 3RU,10 250 | 249,London,United Kingdom,United Kingdom,Europe,SW1P 2NU,10 251 | 250,London,United Kingdom,United Kingdom,Europe,SW6 SBY,10 252 | 251,London,United Kingdom,United Kingdom,Europe,SW8 1XD,10 253 | 252,London,United Kingdom,United Kingdom,Europe,SW8 4BG,10 254 | 253,London,United Kingdom,United Kingdom,Europe,W10 6BL,10 255 | 254,London,United Kingdom,United Kingdom,Europe,W1N 9FA,10 256 | 255,London,United Kingdom,United Kingdom,Europe,W1V 5RN,10 257 | 256,London,United Kingdom,United Kingdom,Europe,W1X3SE,10 258 | 257,London,United Kingdom,United Kingdom,Europe,W1Y 3RA,10 259 | 258,Maidenhead,United Kingdom,United Kingdom,Europe,SL67RJ,10 260 | 259,Milton Keynes,United Kingdom,United Kingdom,Europe,MK8 8DF,10 261 | 260,Milton Keynes,United Kingdom,United Kingdom,Europe,MK8 8ZD,10 262 | 261,Newcastle upon Tyne,United Kingdom,United Kingdom,Europe,NT20,10 263 | 262,Oxford,United Kingdom,United Kingdom,Europe,OX1,10 264 | 263,Oxford,United Kingdom,United Kingdom,Europe,OX14 4SE,10 265 | 264,Oxon,United Kingdom,United Kingdom,Europe,OX16 8RS,10 266 | 265,Peterborough,United Kingdom,United Kingdom,Europe,PB12,10 267 | 266,Reading,United Kingdom,United Kingdom,Europe,RG7 5H7,10 268 | 267,Runcorn,United Kingdom,United Kingdom,Europe,TY31,10 269 | 268,Liverpool,United Kingdom,United Kingdom,Europe,L4 4HB,10 270 | 269,Stoke-on-Trent,United Kingdom,United Kingdom,Europe,AS23,10 271 | 270,W. York,United Kingdom,United Kingdom,Europe,BD1 4SJ,10 272 | 271,Warrington,United Kingdom,United Kingdom,Europe,WA1,10 273 | 272,Warrington,United Kingdom,United Kingdom,Europe,WA3 7BH,10 274 | 273,Watford,United Kingdom,United Kingdom,Europe,WA3,10 275 | 274,West Sussex,United Kingdom,United Kingdom,Europe,RH15 9UD,10 276 | 275,Wokingham,United Kingdom,United Kingdom,Europe,RG41 1QW,10 277 | 276,Woolston,United Kingdom,United Kingdom,Europe,WA1 4SY,10 278 | 277,York,United Kingdom,United Kingdom,Europe,Y024 1GF,10 279 | 278,York,United Kingdom,United Kingdom,Europe,Y03 4TN,10 280 | 279,York,United Kingdom,United Kingdom,Europe,YO15,10 281 | 280,Birmingham,United States,Southeast,North America,35203,5 282 | 281,Florence,United States,Southeast,North America,35630,5 283 | 282,Huntsville,United States,Southeast,North America,35801,5 284 | 283,Mobile,United States,Southeast,North America,36602,5 285 | 284,Montgomery,United States,Southeast,North America,36104,5 286 | 285,Chandler,United States,Southwest,North America,85225,4 287 | 286,Gilbert,United States,Southwest,North America,85233,4 288 | 287,Mesa,United States,Southwest,North America,85201,4 289 | 288,Phoenix,United States,Southwest,North America,85004,4 290 | 289,Scottsdale,United States,Southwest,North America,85257,4 291 | 290,Surprise,United States,Southwest,North America,85374,4 292 | 291,Tucson,United States,Southwest,North America,85701,4 293 | 292,Alhambra,United States,Southwest,North America,91801,4 294 | 293,Alpine,United States,Southwest,North America,91901,4 295 | 294,Auburn,United States,Southwest,North America,95603,4 296 | 295,Baldwin Park,United States,Southwest,North America,91706,4 297 | 296,Barstow,United States,Southwest,North America,92311,4 298 | 297,Bell Gardens,United States,Southwest,North America,90201,4 299 | 298,Bellflower,United States,Southwest,North America,90706,4 300 | 299,Berkeley,United States,Southwest,North America,94704,4 301 | 300,Beverly Hills,United States,Southwest,North America,90210,4 302 | 301,Burbank,United States,Southwest,North America,91502,4 303 | 302,Burlingame,United States,Southwest,North America,94010,4 304 | 303,Camarillo,United States,Southwest,North America,93010,4 305 | 304,Canoga Park,United States,Southwest,North America,91303,4 306 | 305,Carson,United States,Southwest,North America,90746,4 307 | 306,Cerritos,United States,Southwest,North America,90703,4 308 | 307,Chula Vista,United States,Southwest,North America,91910,4 309 | 308,Citrus Heights,United States,Southwest,North America,95610,4 310 | 309,City Of Commerce,United States,Southwest,North America,90040,4 311 | 310,Colma,United States,Southwest,North America,94014,4 312 | 311,Concord,United States,Southwest,North America,94519,4 313 | 312,Coronado,United States,Southwest,North America,92118,4 314 | 313,Culver City,United States,Southwest,North America,90232,4 315 | 314,Daly City,United States,Southwest,North America,94015,4 316 | 315,Downey,United States,Southwest,North America,90241,4 317 | 316,El Cajon,United States,Southwest,North America,92020,4 318 | 317,El Segundo,United States,Southwest,North America,90245,4 319 | 318,Elk Grove,United States,Southwest,North America,95624,4 320 | 319,Escondido,United States,Southwest,North America,92025,4 321 | 320,Eureka,United States,Southwest,North America,95501,4 322 | 321,Fontana,United States,Southwest,North America,92335,4 323 | 322,Fremont,United States,Southwest,North America,94536,4 324 | 323,Fullerton,United States,Southwest,North America,92831,4 325 | 324,Gilroy,United States,Southwest,North America,95020,4 326 | 325,Glendale,United States,Southwest,North America,91203,4 327 | 326,Grossmont,United States,Southwest,North America,91941,4 328 | 327,Hanford,United States,Southwest,North America,93230,4 329 | 328,Hayward,United States,Southwest,North America,94541,4 330 | 329,Imperial Beach,United States,Southwest,North America,91932,4 331 | 330,Irvine,United States,Southwest,North America,92614,4 332 | 331,La Jolla,United States,Southwest,North America,92806,4 333 | 332,La Mesa,United States,Southwest,North America,91941,4 334 | 333,Lake Elsinore,United States,Southwest,North America,92530,4 335 | 334,Lakewood,United States,Southwest,North America,90712,4 336 | 335,Lemon Grove,United States,Southwest,North America,91945,4 337 | 336,Lincoln Acres,United States,Southwest,North America,91950,4 338 | 337,Long Beach,United States,Southwest,North America,90802,4 339 | 338,Los Angeles,United States,Southwest,North America,90012,4 340 | 339,Mill Valley,United States,Southwest,North America,94941,4 341 | 340,Milpitas,United States,Southwest,North America,95035,4 342 | 341,Modesto,United States,Southwest,North America,95354,4 343 | 342,Monrovia,United States,Southwest,North America,91016,4 344 | 343,National City,United States,Southwest,North America,91950,4 345 | 344,Newark,United States,Southwest,North America,94560,4 346 | 345,Newport Beach,United States,Southwest,North America,92625,4 347 | 346,Norwalk,United States,Southwest,North America,90650,4 348 | 347,Novato,United States,Southwest,North America,94947,4 349 | 348,Oakland,United States,Southwest,North America,94611,4 350 | 349,Ontario,United States,Southwest,North America,91764,4 351 | 350,Orange,United States,Southwest,North America,92867,4 352 | 351,Oxnard,United States,Southwest,North America,93030,4 353 | 352,Palo Alto,United States,Southwest,North America,94303,4 354 | 353,Pleasanton,United States,Southwest,North America,94566,4 355 | 354,Redlands,United States,Southwest,North America,92373,4 356 | 355,Redwood City,United States,Southwest,North America,94063,4 357 | 356,Sacramento,United States,Southwest,North America,95814,4 358 | 357,San Bruno,United States,Southwest,North America,94066,4 359 | 358,San Carlos,United States,Southwest,North America,94070,4 360 | 359,San Diego,United States,Southwest,North America,92102,4 361 | 360,San Francisco,United States,Southwest,North America,94109,4 362 | 361,San Gabriel,United States,Southwest,North America,91776,4 363 | 362,San Jose,United States,Southwest,North America,95112,4 364 | 363,San Mateo,United States,Southwest,North America,94404,4 365 | 364,San Ramon,United States,Southwest,North America,94583,4 366 | 365,San Ysidro,United States,Southwest,North America,92173,4 367 | 366,Sand City,United States,Southwest,North America,93955,4 368 | 367,Santa Ana,United States,Southwest,North America,92701,4 369 | 368,Santa Cruz,United States,Southwest,North America,95062,4 370 | 369,Santa Monica,United States,Southwest,North America,90401,4 371 | 370,Sherman Oaks,United States,Southwest,North America,91403,4 372 | 371,Simi Valley,United States,Southwest,North America,93065,4 373 | 372,Spring Valley,United States,Southwest,North America,91977,4 374 | 373,Stockton,United States,Southwest,North America,95202,4 375 | 374,Torrance,United States,Southwest,North America,90505,4 376 | 375,Trabuco Canyon,United States,Southwest,North America,92679,4 377 | 376,Union City,United States,Southwest,North America,94587,4 378 | 377,Upland,United States,Southwest,North America,91786,4 379 | 378,Vacaville,United States,Southwest,North America,95688,4 380 | 379,Van Nuys,United States,Southwest,North America,91411,4 381 | 380,Visalia,United States,Southwest,North America,93291,4 382 | 381,Vista,United States,Southwest,North America,92084,4 383 | 382,Walnut Creek,United States,Southwest,North America,94596,4 384 | 383,West Covina,United States,Southwest,North America,91791,4 385 | 384,Whittier,United States,Southwest,North America,90605,4 386 | 385,Woodland Hills,United States,Southwest,North America,91364,4 387 | 386,Denver,United States,Central,North America,80203,3 388 | 387,Englewood,United States,Central,North America,80110,3 389 | 388,Greeley,United States,Central,North America,80631,3 390 | 389,Longmont,United States,Central,North America,80501,3 391 | 390,Loveland,United States,Central,North America,80537,3 392 | 391,Parker,United States,Central,North America,80138,3 393 | 392,Westminster,United States,Central,North America,80030,3 394 | 393,East Haven,United States,Northeast,North America,6512,2 395 | 394,Farmington,United States,Northeast,North America,6032,2 396 | 395,Hamden,United States,Northeast,North America,6518,2 397 | 396,Milford,United States,Northeast,North America,6460,2 398 | 397,New Haven,United States,Northeast,North America,6510,2 399 | 398,Stamford,United States,Northeast,North America,6901,2 400 | 399,Waterbury,United States,Northeast,North America,6710,2 401 | 400,Westport,United States,Northeast,North America,6880,2 402 | 401,Altamonte Springs,United States,Southeast,North America,32701,5 403 | 402,Bradenton,United States,Southeast,North America,34205,5 404 | 403,Clearwater,United States,Southeast,North America,33755,5 405 | 404,Destin,United States,Southeast,North America,32541,5 406 | 405,Hollywood,United States,Southeast,North America,33021,5 407 | 406,Kendall,United States,Southeast,North America,33143,5 408 | 407,Lakeland,United States,Southeast,North America,33801,5 409 | 408,Merritt Island,United States,Southeast,North America,32952,5 410 | 409,Miami,United States,Southeast,North America,33127,5 411 | 410,North Miami Beach,United States,Southeast,North America,33162,5 412 | 411,Orlando,United States,Southeast,North America,32804,5 413 | 412,Sarasota,United States,Southeast,North America,34236,5 414 | 413,Sunrise,United States,Southeast,North America,33322,5 415 | 414,Tampa,United States,Southeast,North America,33602,5 416 | 415,Vero Beach,United States,Southeast,North America,32960,5 417 | 416,Atlanta,United States,Southeast,North America,30308,5 418 | 417,Augusta,United States,Southeast,North America,30901,5 419 | 418,Austell,United States,Southeast,North America,30106,5 420 | 419,Byron,United States,Southeast,North America,31008,5 421 | 420,Clarkston,United States,Southeast,North America,30021,5 422 | 421,Columbus,United States,Southeast,North America,31901,5 423 | 422,Decatur,United States,Southeast,North America,30030,5 424 | 423,La Grange,United States,Southeast,North America,30240,5 425 | 424,Marietta,United States,Southeast,North America,30060,5 426 | 425,Mcdonough,United States,Southeast,North America,30253,5 427 | 426,Savannah,United States,Southeast,North America,31401,5 428 | 427,Suwanee,United States,Southeast,North America,30024,5 429 | 428,Idaho Falls,United States,Northwest,North America,83402,1 430 | 429,Lewiston,United States,Northwest,North America,83501,1 431 | 430,Sandpoint,United States,Northwest,North America,83864,1 432 | 431,Carol Stream,United States,Central,North America,60188,3 433 | 432,Chicago,United States,Central,North America,60610,3 434 | 433,Elgin,United States,Central,North America,60120,3 435 | 434,Joliet,United States,Central,North America,60433,3 436 | 435,Moline,United States,Central,North America,61265,3 437 | 436,Norridge,United States,Central,North America,60706,3 438 | 437,Peoria,United States,Central,North America,61606,3 439 | 438,Tuscola,United States,Central,North America,61953,3 440 | 439,West Chicago,United States,Central,North America,60185,3 441 | 440,Wood Dale,United States,Central,North America,60191,3 442 | 441,Daleville,United States,Northeast,North America,47334,2 443 | 442,Fort Wayne,United States,Northeast,North America,46807,2 444 | 443,Indianapolis,United States,Northeast,North America,46204,2 445 | 444,Logansport,United States,Northeast,North America,46947,2 446 | 445,Michigan City,United States,Northeast,North America,46360,2 447 | 446,New Castle,United States,Northeast,North America,47362,2 448 | 447,South Bend,United States,Northeast,North America,46601,2 449 | 448,Campbellsville,United States,Southeast,North America,42718,5 450 | 449,Florence,United States,Southeast,North America,41042,5 451 | 450,Newport,United States,Southeast,North America,41071,5 452 | 451,Saint Matthews,United States,Southeast,North America,40207,5 453 | 452,Somerset,United States,Southeast,North America,42501,5 454 | 453,Braintree,United States,Northeast,North America,2184,2 455 | 454,Norwood,United States,Northeast,North America,2062,2 456 | 455,Randolph,United States,Northeast,North America,2368,2 457 | 456,Saugus,United States,Northeast,North America,1906,2 458 | 457,Wrentham,United States,Northeast,North America,2093,2 459 | 458,Baltimore,United States,Northeast,North America,21201,2 460 | 459,Kittery,United States,Northeast,North America,3904,2 461 | 460,Detroit,United States,Central,North America,48226,3 462 | 461,Holland,United States,Central,North America,49423,3 463 | 462,Howell,United States,Central,North America,48843,3 464 | 463,Madison Heights,United States,Central,North America,48071,3 465 | 464,Midland,United States,Central,North America,48640,3 466 | 465,Monroe,United States,Central,North America,98272,3 467 | 466,Novi,United States,Central,North America,48375,3 468 | 467,Pontiac,United States,Central,North America,48342,3 469 | 468,Port Huron,United States,Central,North America,48060,3 470 | 469,Redford,United States,Central,North America,48239,3 471 | 470,Saginaw,United States,Central,North America,48601,3 472 | 471,Southfield,United States,Central,North America,48034,3 473 | 472,Southgate,United States,Central,North America,48195,3 474 | 473,Westland,United States,Central,North America,48185,3 475 | 474,Zeeland,United States,Central,North America,49464,3 476 | 475,Branch,United States,Central,North America,55056,3 477 | 476,Duluth,United States,Central,North America,55802,3 478 | 477,Edina,United States,Central,North America,55436,3 479 | 478,Medford,United States,Central,North America,55049,3 480 | 479,Minneapolis,United States,Central,North America,55402,3 481 | 480,Woodbury,United States,Central,North America,55125,3 482 | 481,Branson,United States,Central,North America,65616,3 483 | 482,Ferguson,United States,Central,North America,63135,3 484 | 483,Jefferson City,United States,Central,North America,65101,3 485 | 484,Kansas City,United States,Central,North America,64106,3 486 | 485,Odessa,United States,Central,North America,64076,3 487 | 486,Saint Ann,United States,Central,North America,63074,3 488 | 487,Saint Louis,United States,Central,North America,63103,3 489 | 488,Biloxi,United States,Southeast,North America,39530,5 490 | 489,Gulfport,United States,Southeast,North America,39501,5 491 | 490,Tupelo,United States,Southeast,North America,38804,5 492 | 491,Billings,United States,Northwest,North America,59101,1 493 | 492,Great Falls,United States,Northwest,North America,59401,1 494 | 493,Missoula,United States,Northwest,North America,59801,1 495 | 494,Charlotte,United States,Southeast,North America,28202,5 496 | 495,Greensboro,United States,Southeast,North America,27412,5 497 | 496,Kannapolis,United States,Southeast,North America,28081,5 498 | 497,Raleigh,United States,Southeast,North America,27603,5 499 | 498,Rocky Mount,United States,Southeast,North America,27803,5 500 | 499,Smithfield,United States,Southeast,North America,27577,5 501 | 500,Winston-Salem,United States,Southeast,North America,27104,5 502 | 501,Hooksett,United States,Northeast,North America,3106,2 503 | 502,Nashua,United States,Northeast,North America,3064,2 504 | 503,Plaistow,United States,Northeast,North America,3865,2 505 | 504,Tilton,United States,Northeast,North America,3276,2 506 | 505,Las Cruces,United States,Southwest,North America,88001,4 507 | 506,Rio Rancho,United States,Southwest,North America,87124,4 508 | 507,Santa Fe,United States,Southwest,North America,87501,4 509 | 508,Fernley,United States,Northwest,North America,89408,1 510 | 509,Las Vegas,United States,Northwest,North America,89106,1 511 | 510,North Las Vegas,United States,Northwest,North America,89030,1 512 | 511,Reno,United States,Northwest,North America,89502,1 513 | 512,Sparks,United States,Northwest,North America,89431,1 514 | 513,Central Valley,United States,Northeast,North America,10917,2 515 | 514,Cheektowaga,United States,Northeast,North America,14227,2 516 | 515,Clay,United States,Northeast,North America,13041,2 517 | 516,De Witt,United States,Northeast,North America,13214,2 518 | 517,Endicott,United States,Northeast,North America,13760,2 519 | 518,Ithaca,United States,Northeast,North America,14850,2 520 | 519,Lake George,United States,Northeast,North America,12845,2 521 | 520,Melville,United States,Northeast,North America,11747,2 522 | 521,New Hartford,United States,Northeast,North America,13413,2 523 | 522,New York,United States,Northeast,North America,10007,2 524 | 523,Valley Stream,United States,Northeast,North America,11580,2 525 | 524,Burbank,United States,Northeast,North America,44214,2 526 | 525,Cincinnati,United States,Northeast,North America,45202,2 527 | 526,Columbus,United States,Northeast,North America,43215,2 528 | 527,Euclid,United States,Northeast,North America,44119,2 529 | 528,Heath,United States,Northeast,North America,43056,2 530 | 529,Holland,United States,Northeast,North America,43528,2 531 | 530,Mansfield,United States,Northeast,North America,44903,2 532 | 531,Mentor,United States,Northeast,North America,44060,2 533 | 532,North Randall,United States,Northeast,North America,44128,2 534 | 533,Oberlin,United States,Northeast,North America,44074,2 535 | 534,Springdale,United States,Northeast,North America,45246,2 536 | 535,Albany,United States,Northwest,North America,97321,1 537 | 536,Beaverton,United States,Northwest,North America,97005,1 538 | 537,Clackamas,United States,Northwest,North America,97015,1 539 | 538,Clackamas,United States,Northwest,North America,97015-6403,1 540 | 539,Corvallis,United States,Northwest,North America,97330,1 541 | 540,Hillsboro,United States,Northwest,North America,97123,1 542 | 541,Klamath Falls,United States,Northwest,North America,97601,1 543 | 542,Lake Oswego,United States,Northwest,North America,97034,1 544 | 543,Lebanon,United States,Northwest,North America,97355,1 545 | 544,Medford,United States,Northwest,North America,97504,1 546 | 545,Milwaukie,United States,Northwest,North America,97222,1 547 | 546,Oregon City,United States,Northwest,North America,97045,1 548 | 547,Portland,United States,Northwest,North America,97205,1 549 | 548,Salem,United States,Northwest,North America,97301,1 550 | 549,Springfield,United States,Northwest,North America,97477,1 551 | 550,Tigard,United States,Northwest,North America,97223,1 552 | 551,Troutdale,United States,Northwest,North America,97060,1 553 | 552,W. Linn,United States,Northwest,North America,97068,1 554 | 553,Woodburn,United States,Northwest,North America,97071,1 555 | 554,Warwick,United States,Northeast,North America,2889,2 556 | 555,West Kingston,United States,Northeast,North America,2892,2 557 | 556,Woonsocket,United States,Northeast,North America,2895,2 558 | 557,Bluffton,United States,Southeast,North America,29910,5 559 | 558,Gaffney,United States,Southeast,North America,29340,5 560 | 559,Myrtle Beach,United States,Southeast,North America,29577,5 561 | 560,Denby,United States,Central,North America,57716,3 562 | 561,North Sioux City,United States,Central,North America,57049,3 563 | 562,Crossville,United States,Southeast,North America,38555,5 564 | 563,Hixson,United States,Southeast,North America,37343,5 565 | 564,Kingsport,United States,Southeast,North America,37660,5 566 | 565,La Vergne,United States,Southeast,North America,37086,5 567 | 566,Maryville,United States,Southeast,North America,37801,5 568 | 567,Memphis,United States,Southeast,North America,38103,5 569 | 568,Millington,United States,Southeast,North America,38054,5 570 | 569,Nashville,United States,Southeast,North America,37203,5 571 | 570,Pigeon Forge,United States,Southeast,North America,37863,5 572 | 571,Arlington,United States,Southwest,North America,76010,4 573 | 572,Austin,United States,Southwest,North America,78701,4 574 | 573,Baytown,United States,Southwest,North America,77520,4 575 | 574,Carrollton,United States,Southwest,North America,75006,4 576 | 575,Cedar Park,United States,Southwest,North America,78613,4 577 | 576,College Station,United States,Southwest,North America,77840,4 578 | 577,Corpus Christi,United States,Southwest,North America,78404,4 579 | 578,Dallas,United States,Southwest,North America,75201,4 580 | 579,Fort Worth,United States,Southwest,North America,76102,4 581 | 580,Garland,United States,Southwest,North America,75040,4 582 | 581,Hillsboro,United States,Southwest,North America,76645,4 583 | 582,Houston,United States,Southwest,North America,77003,4 584 | 583,Humble,United States,Southwest,North America,77338,4 585 | 584,Irving,United States,Southwest,North America,75061,4 586 | 585,Killeen,United States,Southwest,North America,76541,4 587 | 586,La Marque,United States,Southwest,North America,77568,4 588 | 587,Laredo,United States,Southwest,North America,78040,4 589 | 588,Mesquite,United States,Southwest,North America,75149,4 590 | 589,Plano,United States,Southwest,North America,75074,4 591 | 590,Round Rock,United States,Southwest,North America,78664,4 592 | 591,San Antonio,United States,Southwest,North America,78204,4 593 | 592,Stafford,United States,Southwest,North America,77477,4 594 | 593,Sugar Land,United States,Southwest,North America,77478,4 595 | 594,Bountiful,United States,Northwest,North America,84010,1 596 | 595,Cedar City,United States,Northwest,North America,84720,1 597 | 596,Ogden,United States,Northwest,North America,84401,1 598 | 597,Park City,United States,Northwest,North America,84098,1 599 | 598,Riverton,United States,Northwest,North America,84065,1 600 | 599,Salt Lake City,United States,Northwest,North America,84101,1 601 | 600,Sandy,United States,Northwest,North America,84070,1 602 | 601,Tooele,United States,Northwest,North America,84074,1 603 | 602,Chantilly,United States,Southeast,North America,20151,5 604 | 603,Falls Church,United States,Southeast,North America,22046,5 605 | 604,Leesburg,United States,Southeast,North America,20176,5 606 | 605,Newport News,United States,Southeast,North America,23607,5 607 | 606,Virginia Beach,United States,Southeast,North America,23451,5 608 | 607,Ballard,United States,Northwest,North America,98107,1 609 | 608,Bellevue,United States,Northwest,North America,98004,1 610 | 609,Bellingham,United States,Northwest,North America,98225,1 611 | 610,Bothell,United States,Northwest,North America,98011,1 612 | 611,Bremerton,United States,Northwest,North America,98312,1 613 | 612,Burien,United States,Northwest,North America,98168,1 614 | 613,Chehalis,United States,Northwest,North America,98532,1 615 | 614,Edmonds,United States,Northwest,North America,98020,1 616 | 615,Ellensburg,United States,Northwest,North America,98926,1 617 | 616,Everett,United States,Northwest,North America,98201,1 618 | 617,Federal Way,United States,Northwest,North America,98003,1 619 | 618,Issaquah,United States,Northwest,North America,98027,1 620 | 619,Kelso,United States,Northwest,North America,98626,1 621 | 620,Kenmore,United States,Northwest,North America,98028,1 622 | 621,Kennewick,United States,Northwest,North America,99337,1 623 | 622,Kent,United States,Northwest,North America,98031,1 624 | 623,Kirkland,United States,Northwest,North America,98033,1 625 | 624,Lacey,United States,Northwest,North America,98503,1 626 | 625,Longview,United States,Northwest,North America,98632,1 627 | 626,Lynnwood,United States,Northwest,North America,98036,1 628 | 627,Marysville,United States,Northwest,North America,98270,1 629 | 628,Monroe,United States,Northwest,North America,98272,1 630 | 629,Newport Hills,United States,Northwest,North America,98006,1 631 | 630,North Bend,United States,Northwest,North America,98045,1 632 | 631,Olympia,United States,Northwest,North America,98501,1 633 | 632,Port Orchard,United States,Northwest,North America,98366,1 634 | 633,Puyallup,United States,Northwest,North America,98371,1 635 | 634,Redmond,United States,Northwest,North America,98052,1 636 | 635,Renton,United States,Northwest,North America,98055,1 637 | 636,Sammamish,United States,Northwest,North America,98074,1 638 | 637,Seattle,United States,Northwest,North America,98104,1 639 | 638,Sedro Woolley,United States,Northwest,North America,98284,1 640 | 639,Sequim,United States,Northwest,North America,98382,1 641 | 640,Shelton,United States,Northwest,North America,98584,1 642 | 641,Spokane,United States,Northwest,North America,99202,1 643 | 642,Tacoma,United States,Northwest,North America,98403,1 644 | 643,Union Gap,United States,Northwest,North America,98903,1 645 | 644,Walla Walla,United States,Northwest,North America,99362,1 646 | 645,Washougal,United States,Northwest,North America,98671,1 647 | 646,Wenatchee,United States,Northwest,North America,98801,1 648 | 647,Woodinville,United States,Northwest,North America,98072,1 649 | 648,Yakima,United States,Northwest,North America,98901,1 650 | 649,Johnson Creek,United States,Central,North America,53038,3 651 | 650,Milwaukee,United States,Central,North America,53202,3 652 | 651,Mosinee,United States,Central,North America,54455,3 653 | 652,Racine,United States,Central,North America,53182,3 654 | 653,Casper,United States,Northwest,North America,82601,1 655 | 654,Cheyenne,United States,Northwest,North America,82001,1 656 | 655,Rock Springs,United States,Northwest,North America,82901,1 657 | -------------------------------------------------------------------------------- /CSV Files/products.csv: -------------------------------------------------------------------------------- 1 | ProductKey,ProductSubcategoryKey,ProductName,Category,SubCategory,StandardCost,Color,ModelName,Status 2 | 210,14,"HL Road Frame - Black, 58",Components,Road Frames,NULL,Black,HL Road Frame,Current 3 | 211,14,"HL Road Frame - Red, 58",Components,Road Frames,NULL,Red,HL Road Frame,Current 4 | 212,31,"Sport-100 Helmet, Red",Accessories,Helmets,12.0278,Red,Sport-100,Outdate 5 | 213,31,"Sport-100 Helmet, Red",Accessories,Helmets,13.8782,Red,Sport-100,Outdate 6 | 214,31,"Sport-100 Helmet, Red",Accessories,Helmets,13.0863,Red,Sport-100,Current 7 | 215,31,"Sport-100 Helmet, Black",Accessories,Helmets,12.0278,Black,Sport-100,Outdate 8 | 216,31,"Sport-100 Helmet, Black",Accessories,Helmets,13.8782,Black,Sport-100,Outdate 9 | 217,31,"Sport-100 Helmet, Black",Accessories,Helmets,13.0863,Black,Sport-100,Current 10 | 218,23,"Mountain Bike Socks, M",Clothing,Socks,3.3963,White,Mountain Bike Socks,Outdate 11 | 219,23,"Mountain Bike Socks, L",Clothing,Socks,3.3963,White,Mountain Bike Socks,Outdate 12 | 220,31,"Sport-100 Helmet, Blue",Accessories,Helmets,12.0278,Blue,Sport-100,Outdate 13 | 221,31,"Sport-100 Helmet, Blue",Accessories,Helmets,13.8782,Blue,Sport-100,Outdate 14 | 222,31,"Sport-100 Helmet, Blue",Accessories,Helmets,13.0863,Blue,Sport-100,Current 15 | 223,19,AWC Logo Cap,Clothing,Caps,5.7052,Multi,Cycling Cap,Outdate 16 | 224,19,AWC Logo Cap,Clothing,Caps,5.2297,Multi,Cycling Cap,Outdate 17 | 225,19,AWC Logo Cap,Clothing,Caps,6.9223,Multi,Cycling Cap,Current 18 | 226,21,"Long-Sleeve Logo Jersey, S",Clothing,Jerseys,31.7244,Multi,Long-Sleeve Logo Jersey,Outdate 19 | 227,21,"Long-Sleeve Logo Jersey, S",Clothing,Jerseys,29.0807,Multi,Long-Sleeve Logo Jersey,Outdate 20 | 228,21,"Long-Sleeve Logo Jersey, S",Clothing,Jerseys,38.4923,Multi,Long-Sleeve Logo Jersey,Current 21 | 229,21,"Long-Sleeve Logo Jersey, M",Clothing,Jerseys,31.7244,Multi,Long-Sleeve Logo Jersey,Outdate 22 | 230,21,"Long-Sleeve Logo Jersey, M",Clothing,Jerseys,29.0807,Multi,Long-Sleeve Logo Jersey,Outdate 23 | 231,21,"Long-Sleeve Logo Jersey, M",Clothing,Jerseys,38.4923,Multi,Long-Sleeve Logo Jersey,Current 24 | 232,21,"Long-Sleeve Logo Jersey, L",Clothing,Jerseys,31.7244,Multi,Long-Sleeve Logo Jersey,Outdate 25 | 233,21,"Long-Sleeve Logo Jersey, L",Clothing,Jerseys,29.0807,Multi,Long-Sleeve Logo Jersey,Outdate 26 | 234,21,"Long-Sleeve Logo Jersey, L",Clothing,Jerseys,38.4923,Multi,Long-Sleeve Logo Jersey,Current 27 | 235,21,"Long-Sleeve Logo Jersey, XL",Clothing,Jerseys,31.7244,Multi,Long-Sleeve Logo Jersey,Outdate 28 | 236,21,"Long-Sleeve Logo Jersey, XL",Clothing,Jerseys,29.0807,Multi,Long-Sleeve Logo Jersey,Outdate 29 | 237,21,"Long-Sleeve Logo Jersey, XL",Clothing,Jerseys,38.4923,Multi,Long-Sleeve Logo Jersey,Current 30 | 238,14,"HL Road Frame - Red, 62",Components,Road Frames,747.9682,Red,HL Road Frame,Outdate 31 | 239,14,"HL Road Frame - Red, 62",Components,Road Frames,722.2568,Red,HL Road Frame,Outdate 32 | 240,14,"HL Road Frame - Red, 62",Components,Road Frames,868.6342,Red,HL Road Frame,Current 33 | 241,14,"HL Road Frame - Red, 44",Components,Road Frames,747.9682,Red,HL Road Frame,Outdate 34 | 242,14,"HL Road Frame - Red, 44",Components,Road Frames,722.2568,Red,HL Road Frame,Outdate 35 | 243,14,"HL Road Frame - Red, 44",Components,Road Frames,868.6342,Red,HL Road Frame,Current 36 | 244,14,"HL Road Frame - Red, 48",Components,Road Frames,747.9682,Red,HL Road Frame,Outdate 37 | 245,14,"HL Road Frame - Red, 48",Components,Road Frames,722.2568,Red,HL Road Frame,Outdate 38 | 246,14,"HL Road Frame - Red, 48",Components,Road Frames,868.6342,Red,HL Road Frame,Current 39 | 247,14,"HL Road Frame - Red, 52",Components,Road Frames,747.9682,Red,HL Road Frame,Outdate 40 | 248,14,"HL Road Frame - Red, 52",Components,Road Frames,722.2568,Red,HL Road Frame,Outdate 41 | 249,14,"HL Road Frame - Red, 52",Components,Road Frames,868.6342,Red,HL Road Frame,Current 42 | 250,14,"HL Road Frame - Red, 56",Components,Road Frames,747.9682,Red,HL Road Frame,Outdate 43 | 251,14,"HL Road Frame - Red, 56",Components,Road Frames,722.2568,Red,HL Road Frame,Outdate 44 | 252,14,"HL Road Frame - Red, 56",Components,Road Frames,868.6342,Red,HL Road Frame,Current 45 | 253,14,"LL Road Frame - Black, 58",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 46 | 254,14,"LL Road Frame - Black, 58",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 47 | 255,14,"LL Road Frame - Black, 58",Components,Road Frames,204.6251,Black,LL Road Frame,Current 48 | 256,14,"LL Road Frame - Black, 60",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 49 | 257,14,"LL Road Frame - Black, 60",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 50 | 258,14,"LL Road Frame - Black, 60",Components,Road Frames,204.6251,Black,LL Road Frame,Current 51 | 259,14,"LL Road Frame - Black, 62",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 52 | 260,14,"LL Road Frame - Black, 62",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 53 | 261,14,"LL Road Frame - Black, 62",Components,Road Frames,204.6251,Black,LL Road Frame,Current 54 | 262,14,"LL Road Frame - Red, 44",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 55 | 263,14,"LL Road Frame - Red, 44",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 56 | 264,14,"LL Road Frame - Red, 48",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 57 | 265,14,"LL Road Frame - Red, 48",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 58 | 266,14,"LL Road Frame - Red, 52",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 59 | 267,14,"LL Road Frame - Red, 52",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 60 | 268,14,"LL Road Frame - Red, 58",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 61 | 269,14,"LL Road Frame - Red, 58",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 62 | 270,14,"LL Road Frame - Red, 60",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 63 | 271,14,"LL Road Frame - Red, 60",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 64 | 272,14,"LL Road Frame - Red, 62",Components,Road Frames,181.4857,Red,LL Road Frame,Outdate 65 | 273,14,"LL Road Frame - Red, 62",Components,Road Frames,187.1571,Red,LL Road Frame,Outdate 66 | 274,14,"ML Road Frame - Red, 44",Components,Road Frames,352.1394,Red,ML Road Frame,Outdate 67 | 275,14,"ML Road Frame - Red, 48",Components,Road Frames,352.1394,Red,ML Road Frame,Outdate 68 | 276,14,"ML Road Frame - Red, 52",Components,Road Frames,352.1394,Red,ML Road Frame,Outdate 69 | 277,14,"ML Road Frame - Red, 58",Components,Road Frames,352.1394,Red,ML Road Frame,Outdate 70 | 278,14,"ML Road Frame - Red, 60",Components,Road Frames,352.1394,Red,ML Road Frame,Outdate 71 | 279,14,"LL Road Frame - Black, 44",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 72 | 280,14,"LL Road Frame - Black, 44",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 73 | 281,14,"LL Road Frame - Black, 44",Components,Road Frames,204.6251,Black,LL Road Frame,Current 74 | 282,14,"LL Road Frame - Black, 48",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 75 | 283,14,"LL Road Frame - Black, 48",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 76 | 284,14,"LL Road Frame - Black, 48",Components,Road Frames,204.6251,Black,LL Road Frame,Current 77 | 285,14,"LL Road Frame - Black, 52",Components,Road Frames,176.1997,Black,LL Road Frame,Outdate 78 | 286,14,"LL Road Frame - Black, 52",Components,Road Frames,170.1428,Black,LL Road Frame,Outdate 79 | 287,14,"LL Road Frame - Black, 52",Components,Road Frames,204.6251,Black,LL Road Frame,Current 80 | 288,12,"HL Mountain Frame - Silver, 42",Components,Mountain Frames,623.8403,Silver,HL Mountain Frame,Outdate 81 | 289,12,"HL Mountain Frame - Silver, 42",Components,Mountain Frames,660.9142,Silver,HL Mountain Frame,Outdate 82 | 290,12,"HL Mountain Frame - Silver, 42",Components,Mountain Frames,747.2002,Silver,HL Mountain Frame,Current 83 | 291,12,"HL Mountain Frame - Silver, 44",Components,Mountain Frames,706.811,Silver,HL Mountain Frame,Outdate 84 | 292,12,"HL Mountain Frame - Silver, 48",Components,Mountain Frames,706.811,Silver,HL Mountain Frame,Outdate 85 | 293,12,"HL Mountain Frame - Silver, 46",Components,Mountain Frames,623.8403,Silver,HL Mountain Frame,Outdate 86 | 294,12,"HL Mountain Frame - Silver, 46",Components,Mountain Frames,660.9142,Silver,HL Mountain Frame,Outdate 87 | 295,12,"HL Mountain Frame - Silver, 46",Components,Mountain Frames,747.2002,Silver,HL Mountain Frame,Current 88 | 296,12,"HL Mountain Frame - Black, 42",Components,Mountain Frames,617.0281,Black,HL Mountain Frame,Outdate 89 | 297,12,"HL Mountain Frame - Black, 42",Components,Mountain Frames,653.6971,Black,HL Mountain Frame,Outdate 90 | 298,12,"HL Mountain Frame - Black, 42",Components,Mountain Frames,739.041,Black,HL Mountain Frame,Current 91 | 299,12,"HL Mountain Frame - Black, 44",Components,Mountain Frames,699.0928,Black,HL Mountain Frame,Outdate 92 | 300,12,"HL Mountain Frame - Black, 48",Components,Mountain Frames,699.0928,Black,HL Mountain Frame,Outdate 93 | 301,12,"HL Mountain Frame - Black, 46",Components,Mountain Frames,617.0281,Black,HL Mountain Frame,Outdate 94 | 302,12,"HL Mountain Frame - Black, 46",Components,Mountain Frames,653.6971,Black,HL Mountain Frame,Outdate 95 | 303,12,"HL Mountain Frame - Black, 46",Components,Mountain Frames,739.041,Black,HL Mountain Frame,Current 96 | 304,12,"HL Mountain Frame - Black, 38",Components,Mountain Frames,617.0281,Black,HL Mountain Frame,Outdate 97 | 305,12,"HL Mountain Frame - Black, 38",Components,Mountain Frames,653.6971,Black,HL Mountain Frame,Outdate 98 | 306,12,"HL Mountain Frame - Black, 38",Components,Mountain Frames,739.041,Black,HL Mountain Frame,Current 99 | 307,12,"HL Mountain Frame - Silver, 38",Components,Mountain Frames,623.8403,Silver,HL Mountain Frame,Outdate 100 | 308,12,"HL Mountain Frame - Silver, 38",Components,Mountain Frames,660.9142,Silver,HL Mountain Frame,Outdate 101 | 309,12,"HL Mountain Frame - Silver, 38",Components,Mountain Frames,747.2002,Silver,HL Mountain Frame,Current 102 | 310,2,"Road-150 Red, 62",Bikes,Road Bikes,2171.2942,Red,Road-150,Outdate 103 | 311,2,"Road-150 Red, 44",Bikes,Road Bikes,2171.2942,Red,Road-150,Outdate 104 | 312,2,"Road-150 Red, 48",Bikes,Road Bikes,2171.2942,Red,Road-150,Outdate 105 | 313,2,"Road-150 Red, 52",Bikes,Road Bikes,2171.2942,Red,Road-150,Outdate 106 | 314,2,"Road-150 Red, 56",Bikes,Road Bikes,2171.2942,Red,Road-150,Outdate 107 | 315,2,"Road-450 Red, 58",Bikes,Road Bikes,884.7083,Red,Road-450,Outdate 108 | 316,2,"Road-450 Red, 60",Bikes,Road Bikes,884.7083,Red,Road-450,Outdate 109 | 317,2,"Road-450 Red, 44",Bikes,Road Bikes,884.7083,Red,Road-450,Outdate 110 | 318,2,"Road-450 Red, 48",Bikes,Road Bikes,884.7083,Red,Road-450,Outdate 111 | 319,2,"Road-450 Red, 52",Bikes,Road Bikes,884.7083,Red,Road-450,Outdate 112 | 320,2,"Road-650 Red, 58",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 113 | 321,2,"Road-650 Red, 58",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 114 | 322,2,"Road-650 Red, 60",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 115 | 323,2,"Road-650 Red, 60",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 116 | 324,2,"Road-650 Red, 62",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 117 | 325,2,"Road-650 Red, 62",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 118 | 326,2,"Road-650 Red, 44",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 119 | 327,2,"Road-650 Red, 44",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 120 | 328,2,"Road-650 Red, 48",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 121 | 329,2,"Road-650 Red, 48",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 122 | 330,2,"Road-650 Red, 52",Bikes,Road Bikes,413.1463,Red,Road-650,Outdate 123 | 331,2,"Road-650 Red, 52",Bikes,Road Bikes,486.7066,Red,Road-650,Outdate 124 | 332,2,"Road-650 Black, 58",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 125 | 333,2,"Road-650 Black, 58",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 126 | 334,2,"Road-650 Black, 60",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 127 | 335,2,"Road-650 Black, 60",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 128 | 336,2,"Road-650 Black, 62",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 129 | 337,2,"Road-650 Black, 62",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 130 | 338,2,"Road-650 Black, 44",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 131 | 339,2,"Road-650 Black, 44",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 132 | 340,2,"Road-650 Black, 48",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 133 | 341,2,"Road-650 Black, 48",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 134 | 342,2,"Road-650 Black, 52",Bikes,Road Bikes,413.1463,Black,Road-650,Outdate 135 | 343,2,"Road-650 Black, 52",Bikes,Road Bikes,486.7066,Black,Road-650,Outdate 136 | 344,1,"Mountain-100 Silver, 38",Bikes,Mountain Bikes,1912.1544,Silver,Mountain-100,Outdate 137 | 345,1,"Mountain-100 Silver, 42",Bikes,Mountain Bikes,1912.1544,Silver,Mountain-100,Outdate 138 | 346,1,"Mountain-100 Silver, 44",Bikes,Mountain Bikes,1912.1544,Silver,Mountain-100,Outdate 139 | 347,1,"Mountain-100 Silver, 48",Bikes,Mountain Bikes,1912.1544,Silver,Mountain-100,Outdate 140 | 348,1,"Mountain-100 Black, 38",Bikes,Mountain Bikes,1898.0944,Black,Mountain-100,Outdate 141 | 349,1,"Mountain-100 Black, 42",Bikes,Mountain Bikes,1898.0944,Black,Mountain-100,Outdate 142 | 350,1,"Mountain-100 Black, 44",Bikes,Mountain Bikes,1898.0944,Black,Mountain-100,Outdate 143 | 351,1,"Mountain-100 Black, 48",Bikes,Mountain Bikes,1898.0944,Black,Mountain-100,Outdate 144 | 352,1,"Mountain-200 Silver, 38",Bikes,Mountain Bikes,1117.8559,Silver,Mountain-200,Outdate 145 | 353,1,"Mountain-200 Silver, 38",Bikes,Mountain Bikes,1265.6195,Silver,Mountain-200,Current 146 | 354,1,"Mountain-200 Silver, 42",Bikes,Mountain Bikes,1117.8559,Silver,Mountain-200,Outdate 147 | 355,1,"Mountain-200 Silver, 42",Bikes,Mountain Bikes,1265.6195,Silver,Mountain-200,Current 148 | 356,1,"Mountain-200 Silver, 46",Bikes,Mountain Bikes,1117.8559,Silver,Mountain-200,Outdate 149 | 357,1,"Mountain-200 Silver, 46",Bikes,Mountain Bikes,1265.6195,Silver,Mountain-200,Current 150 | 358,1,"Mountain-200 Black, 38",Bikes,Mountain Bikes,1105.81,Black,Mountain-200,Outdate 151 | 359,1,"Mountain-200 Black, 38",Bikes,Mountain Bikes,1251.9813,Black,Mountain-200,Current 152 | 360,1,"Mountain-200 Black, 42",Bikes,Mountain Bikes,1105.81,Black,Mountain-200,Outdate 153 | 361,1,"Mountain-200 Black, 42",Bikes,Mountain Bikes,1251.9813,Black,Mountain-200,Current 154 | 362,1,"Mountain-200 Black, 46",Bikes,Mountain Bikes,1105.81,Black,Mountain-200,Outdate 155 | 363,1,"Mountain-200 Black, 46",Bikes,Mountain Bikes,1251.9813,Black,Mountain-200,Current 156 | 364,1,"Mountain-300 Black, 38",Bikes,Mountain Bikes,598.4354,Black,Mountain-300,Outdate 157 | 365,1,"Mountain-300 Black, 40",Bikes,Mountain Bikes,598.4354,Black,Mountain-300,Outdate 158 | 366,1,"Mountain-300 Black, 44",Bikes,Mountain Bikes,598.4354,Black,Mountain-300,Outdate 159 | 367,1,"Mountain-300 Black, 48",Bikes,Mountain Bikes,598.4354,Black,Mountain-300,Outdate 160 | 368,2,"Road-250 Red, 44",Bikes,Road Bikes,1518.7864,Red,Road-250,Outdate 161 | 369,2,"Road-250 Red, 48",Bikes,Road Bikes,1518.7864,Red,Road-250,Outdate 162 | 370,2,"Road-250 Red, 52",Bikes,Road Bikes,1518.7864,Red,Road-250,Outdate 163 | 371,2,"Road-250 Red, 58",Bikes,Road Bikes,1320.6838,Red,Road-250,Outdate 164 | 372,2,"Road-250 Red, 58",Bikes,Road Bikes,1554.9479,Red,Road-250,Current 165 | 373,2,"Road-250 Black, 44",Bikes,Road Bikes,1320.6838,Black,Road-250,Outdate 166 | 374,2,"Road-250 Black, 44",Bikes,Road Bikes,1554.9479,Black,Road-250,Current 167 | 375,2,"Road-250 Black, 48",Bikes,Road Bikes,1320.6838,Black,Road-250,Outdate 168 | 376,2,"Road-250 Black, 48",Bikes,Road Bikes,1554.9479,Black,Road-250,Current 169 | 377,2,"Road-250 Black, 52",Bikes,Road Bikes,1320.6838,Black,Road-250,Outdate 170 | 378,2,"Road-250 Black, 52",Bikes,Road Bikes,1554.9479,Black,Road-250,Current 171 | 379,2,"Road-250 Black, 58",Bikes,Road Bikes,1320.6838,Black,Road-250,Outdate 172 | 380,2,"Road-250 Black, 58",Bikes,Road Bikes,1554.9479,Black,Road-250,Current 173 | 381,2,"Road-550-W Yellow, 38",Bikes,Road Bikes,605.6492,Yellow,Road-550-W,Outdate 174 | 382,2,"Road-550-W Yellow, 38",Bikes,Road Bikes,713.0798,Yellow,Road-550-W,Current 175 | 383,2,"Road-550-W Yellow, 40",Bikes,Road Bikes,605.6492,Yellow,Road-550-W,Outdate 176 | 384,2,"Road-550-W Yellow, 40",Bikes,Road Bikes,713.0798,Yellow,Road-550-W,Current 177 | 385,2,"Road-550-W Yellow, 42",Bikes,Road Bikes,605.6492,Yellow,Road-550-W,Outdate 178 | 386,2,"Road-550-W Yellow, 42",Bikes,Road Bikes,713.0798,Yellow,Road-550-W,Current 179 | 387,2,"Road-550-W Yellow, 44",Bikes,Road Bikes,605.6492,Yellow,Road-550-W,Outdate 180 | 388,2,"Road-550-W Yellow, 44",Bikes,Road Bikes,713.0798,Yellow,Road-550-W,Current 181 | 389,2,"Road-550-W Yellow, 48",Bikes,Road Bikes,605.6492,Yellow,Road-550-W,Outdate 182 | 390,2,"Road-550-W Yellow, 48",Bikes,Road Bikes,713.0798,Yellow,Road-550-W,Current 183 | 391,10,LL Fork,Components,Forks,65.8097,NA,LL Fork,Outdate 184 | 392,10,ML Fork,Components,Forks,77.9176,NA,ML Fork,Outdate 185 | 393,10,HL Fork,Components,Forks,101.8936,NA,HL Fork,Outdate 186 | 394,11,LL Headset,Components,Headsets,15.1848,NA,LL Headset,Outdate 187 | 395,11,ML Headset,Components,Headsets,45.4168,NA,ML Headset,Outdate 188 | 396,11,HL Headset,Components,Headsets,55.3801,NA,HL Headset,Outdate 189 | 397,4,LL Mountain Handlebars,Components,Handlebars,17.978,NA,LL Mountain Handlebars,Outdate 190 | 398,4,LL Mountain Handlebars,Components,Handlebars,19.7758,NA,LL Mountain Handlebars,Current 191 | 399,4,ML Mountain Handlebars,Components,Handlebars,24.9932,NA,ML Mountain Handlebars,Outdate 192 | 400,4,ML Mountain Handlebars,Components,Handlebars,27.4925,NA,ML Mountain Handlebars,Current 193 | 401,4,HL Mountain Handlebars,Components,Handlebars,48.5453,NA,HL Mountain Handlebars,Outdate 194 | 402,4,HL Mountain Handlebars,Components,Handlebars,53.3999,NA,HL Mountain Handlebars,Current 195 | 403,4,LL Road Handlebars,Components,Handlebars,17.978,NA,LL Road Handlebars,Outdate 196 | 404,4,LL Road Handlebars,Components,Handlebars,19.7758,NA,LL Road Handlebars,Current 197 | 405,4,ML Road Handlebars,Components,Handlebars,24.9932,NA,ML Road Handlebars,Outdate 198 | 406,4,ML Road Handlebars,Components,Handlebars,27.4925,NA,ML Road Handlebars,Current 199 | 407,4,HL Road Handlebars,Components,Handlebars,48.5453,NA,HL Road Handlebars,Outdate 200 | 408,4,HL Road Handlebars,Components,Handlebars,53.3999,NA,HL Road Handlebars,Current 201 | 409,12,"ML Mountain Frame - Black, 38",Components,Mountain Frames,185.8193,Black,ML Mountain Frame-W,Outdate 202 | 410,17,LL Mountain Front Wheel,Components,Wheels,26.9708,Black,LL Mountain Front Wheel,Outdate 203 | 411,17,ML Mountain Front Wheel,Components,Wheels,92.8071,Black,ML Mountain Front Wheel,Outdate 204 | 412,17,HL Mountain Front Wheel,Components,Wheels,133.2955,Black,HL Mountain Front Wheel,Outdate 205 | 413,17,LL Road Front Wheel,Components,Wheels,37.9909,Black,LL Road Front Wheel,Outdate 206 | 414,17,ML Road Front Wheel,Components,Wheels,110.2829,Black,ML Road Front Wheel,Outdate 207 | 415,17,HL Road Front Wheel,Components,Wheels,146.5466,Black,HL Road Front Wheel,Outdate 208 | 416,17,Touring Front Wheel,Components,Wheels,96.7964,Black,Touring Front Wheel,Outdate 209 | 417,14,"ML Road Frame-W - Yellow, 38",Components,Road Frames,300.1188,Yellow,ML Road Frame-W,Outdate 210 | 418,14,"ML Road Frame-W - Yellow, 38",Components,Road Frames,360.9428,Yellow,ML Road Frame-W,Current 211 | 419,17,LL Mountain Rear Wheel,Components,Wheels,38.9588,Black,LL Mountain Rear Wheel,Outdate 212 | 420,17,ML Mountain Rear Wheel,Components,Wheels,104.7951,Black,ML Mountain Rear Wheel,Outdate 213 | 421,17,HL Mountain Rear Wheel,Components,Wheels,145.2835,Black,HL Mountain Rear Wheel,Outdate 214 | 422,17,LL Road Rear Wheel,Components,Wheels,49.9789,Black,LL Road Rear Wheel,Outdate 215 | 423,17,ML Road Rear Wheel,Components,Wheels,122.2709,Black,ML Road Rear Wheel,Outdate 216 | 424,17,HL Road Rear Wheel,Components,Wheels,158.5346,Black,HL Road Rear Wheel,Outdate 217 | 425,17,Touring Rear Wheel,Components,Wheels,108.7844,Black,Touring Rear Wheel,Outdate 218 | 426,12,"ML Mountain Frame - Black, 40",Components,Mountain Frames,185.8193,Black,ML Mountain Frame,Outdate 219 | 427,12,"ML Mountain Frame - Black, 44",Components,Mountain Frames,185.8193,Black,ML Mountain Frame,Outdate 220 | 428,12,"ML Mountain Frame - Black, 48",Components,Mountain Frames,185.8193,Black,ML Mountain Frame,Outdate 221 | 429,14,"ML Road Frame-W - Yellow, 40",Components,Road Frames,300.1188,Yellow,ML Road Frame-W,Outdate 222 | 430,14,"ML Road Frame-W - Yellow, 40",Components,Road Frames,360.9428,Yellow,ML Road Frame-W,Current 223 | 431,14,"ML Road Frame-W - Yellow, 42",Components,Road Frames,300.1188,Yellow,ML Road Frame-W,Outdate 224 | 432,14,"ML Road Frame-W - Yellow, 42",Components,Road Frames,360.9428,Yellow,ML Road Frame-W,Current 225 | 433,14,"ML Road Frame-W - Yellow, 44",Components,Road Frames,300.1188,Yellow,ML Road Frame-W,Outdate 226 | 434,14,"ML Road Frame-W - Yellow, 44",Components,Road Frames,360.9428,Yellow,ML Road Frame-W,Current 227 | 435,14,"ML Road Frame-W - Yellow, 48",Components,Road Frames,300.1188,Yellow,ML Road Frame-W,Outdate 228 | 436,14,"ML Road Frame-W - Yellow, 48",Components,Road Frames,360.9428,Yellow,ML Road Frame-W,Current 229 | 437,14,"HL Road Frame - Black, 62",Components,Road Frames,722.2568,Black,HL Road Frame,Outdate 230 | 438,14,"HL Road Frame - Black, 62",Components,Road Frames,868.6342,Black,HL Road Frame,Current 231 | 439,14,"HL Road Frame - Black, 44",Components,Road Frames,722.2568,Black,HL Road Frame,Outdate 232 | 440,14,"HL Road Frame - Black, 44",Components,Road Frames,868.6342,Black,HL Road Frame,Current 233 | 441,14,"HL Road Frame - Black, 48",Components,Road Frames,722.2568,Black,HL Road Frame,Outdate 234 | 442,14,"HL Road Frame - Black, 48",Components,Road Frames,868.6342,Black,HL Road Frame,Current 235 | 443,14,"HL Road Frame - Black, 52",Components,Road Frames,722.2568,Black,HL Road Frame,Outdate 236 | 444,14,"HL Road Frame - Black, 52",Components,Road Frames,868.6342,Black,HL Road Frame,Current 237 | 445,22,"Men's Sports Shorts, S",Clothing,Shorts,24.7459,Black,Men's Sports Shorts,Outdate 238 | 446,35,"Touring-Panniers, Large",Accessories,Panniers,51.5625,Grey,Touring-Panniers,Outdate 239 | 447,34,Cable Lock,Accessories,Locks,10.3125,NA,Cable Lock,Outdate 240 | 448,36,Minipump,Accessories,Pumps,8.2459,NA,Minipump,Outdate 241 | 449,36,Mountain Pump,Accessories,Pumps,10.3084,NA,Mountain Pump,Outdate 242 | 450,33,Taillights - Battery-Powered,Accessories,Lights,5.7709,NA,Taillight,Outdate 243 | 451,33,Headlights - Dual-Beam,Accessories,Lights,14.4334,NA,Headlights - Dual-Beam,Outdate 244 | 452,33,Headlights - Weatherproof,Accessories,Lights,18.5584,NA,Headlights - Weatherproof,Outdate 245 | 453,22,"Men's Sports Shorts, M",Clothing,Shorts,24.7459,Black,Men's Sports Shorts,Outdate 246 | 454,22,"Men's Sports Shorts, L",Clothing,Shorts,24.7459,Black,Men's Sports Shorts,Outdate 247 | 455,22,"Men's Sports Shorts, XL",Clothing,Shorts,24.7459,Black,Men's Sports Shorts,Outdate 248 | 456,24,"Women's Tights, S",Clothing,Tights,30.9334,Black,Women's Tights,Outdate 249 | 457,24,"Women's Tights, M",Clothing,Tights,30.9334,Black,Women's Tights,Outdate 250 | 458,24,"Women's Tights, L",Clothing,Tights,30.9334,Black,Women's Tights,Outdate 251 | 459,18,"Men's Bib-Shorts, S",Clothing,Bib-Shorts,37.1209,Multi,Men's Bib-Shorts,Outdate 252 | 460,18,"Men's Bib-Shorts, M",Clothing,Bib-Shorts,37.1209,Multi,Men's Bib-Shorts,Outdate 253 | 461,18,"Men's Bib-Shorts, L",Clothing,Bib-Shorts,37.1209,Multi,Men's Bib-Shorts,Outdate 254 | 462,20,"Half-Finger Gloves, S",Clothing,Gloves,9.7136,Black,Half-Finger Gloves,Outdate 255 | 463,20,"Half-Finger Gloves, S",Clothing,Gloves,9.1593,Black,Half-Finger Gloves,Current 256 | 464,20,"Half-Finger Gloves, M",Clothing,Gloves,9.7136,Black,Half-Finger Gloves,Outdate 257 | 465,20,"Half-Finger Gloves, M",Clothing,Gloves,9.1593,Black,Half-Finger Gloves,Current 258 | 466,20,"Half-Finger Gloves, L",Clothing,Gloves,9.7136,Black,Half-Finger Gloves,Outdate 259 | 467,20,"Half-Finger Gloves, L",Clothing,Gloves,9.1593,Black,Half-Finger Gloves,Current 260 | 468,20,"Full-Finger Gloves, S",Clothing,Gloves,15.6709,Black,Full-Finger Gloves,Outdate 261 | 469,20,"Full-Finger Gloves, M",Clothing,Gloves,15.6709,Black,Full-Finger Gloves,Outdate 262 | 470,20,"Full-Finger Gloves, L",Clothing,Gloves,15.6709,Black,Full-Finger Gloves,Outdate 263 | 471,25,"Classic Vest, S",Clothing,Vests,23.749,Blue,Classic Vest,Current 264 | 472,25,"Classic Vest, M",Clothing,Vests,23.749,Blue,Classic Vest,Current 265 | 473,25,"Classic Vest, L",Clothing,Vests,23.749,Blue,Classic Vest,Current 266 | 474,22,"Women's Mountain Shorts, S",Clothing,Shorts,26.1763,Black,Women's Mountain Shorts,Current 267 | 475,22,"Women's Mountain Shorts, M",Clothing,Shorts,26.1763,Black,Women's Mountain Shorts,Current 268 | 476,22,"Women's Mountain Shorts, L",Clothing,Shorts,26.1763,Black,Women's Mountain Shorts,Current 269 | 477,28,Water Bottle - 30 oz.,Accessories,Bottles and Cages,1.8663,NA,Water Bottle,Current 270 | 478,28,Mountain Bottle Cage,Accessories,Bottles and Cages,3.7363,NA,Mountain Bottle Cage,Current 271 | 479,28,Road Bottle Cage,Accessories,Bottles and Cages,3.3623,NA,Road Bottle Cage,Current 272 | 480,37,Patch Kit/8 Patches,Accessories,Tires and Tubes,0.8565,NA,Patch kit,Current 273 | 481,23,"Racing Socks, M",Clothing,Socks,3.3623,White,Racing Socks,Current 274 | 482,23,"Racing Socks, L",Clothing,Socks,3.3623,White,Racing Socks,Current 275 | 483,26,Hitch Rack - 4-Bike,Accessories,Bike Racks,44.88,NA,Hitch Rack - 4-Bike,Current 276 | 484,29,Bike Wash - Dissolver,Accessories,Cleaners,2.9733,NA,Bike Wash,Current 277 | 485,30,Fender Set - Mountain,Accessories,Fenders,8.2205,NA,Fender Set - Mountain,Current 278 | 486,27,All-Purpose Bike Stand,Accessories,Bike Stands,59.466,NA,All-Purpose Bike Stand,Current 279 | 487,32,Hydration Pack - 70 oz.,Accessories,Hydration Packs,20.5663,Silver,Hydration Pack,Current 280 | 488,21,"Short-Sleeve Classic Jersey, S",Clothing,Jerseys,41.5723,Yellow,Short-Sleeve Classic Jersey,Current 281 | 489,21,"Short-Sleeve Classic Jersey, M",Clothing,Jerseys,41.5723,Yellow,Short-Sleeve Classic Jersey,Current 282 | 490,21,"Short-Sleeve Classic Jersey, L",Clothing,Jerseys,41.5723,Yellow,Short-Sleeve Classic Jersey,Current 283 | 491,21,"Short-Sleeve Classic Jersey, XL",Clothing,Jerseys,41.5723,Yellow,Short-Sleeve Classic Jersey,Current 284 | 492,16,"HL Touring Frame - Yellow, 60",Components,Touring Frames,601.7437,Yellow,HL Touring Frame,Current 285 | 493,16,"LL Touring Frame - Yellow, 62",Components,Touring Frames,199.8519,Yellow,LL Touring Frame,Current 286 | 494,16,"HL Touring Frame - Yellow, 46",Components,Touring Frames,601.7437,Yellow,HL Touring Frame,Current 287 | 495,16,"HL Touring Frame - Yellow, 50",Components,Touring Frames,601.7437,Yellow,HL Touring Frame,Current 288 | 496,16,"HL Touring Frame - Yellow, 54",Components,Touring Frames,601.7437,Yellow,HL Touring Frame,Current 289 | 497,16,"HL Touring Frame - Blue, 46",Components,Touring Frames,601.7437,Blue,HL Touring Frame,Current 290 | 498,16,"HL Touring Frame - Blue, 50",Components,Touring Frames,601.7437,Blue,HL Touring Frame,Current 291 | 499,16,"HL Touring Frame - Blue, 54",Components,Touring Frames,601.7437,Blue,HL Touring Frame,Current 292 | 500,16,"HL Touring Frame - Blue, 60",Components,Touring Frames,601.7437,Blue,HL Touring Frame,Current 293 | 501,9,Rear Derailleur,Components,Derailleurs,53.9282,Silver,Rear Derailleur,Current 294 | 502,16,"LL Touring Frame - Blue, 50",Components,Touring Frames,199.8519,Blue,LL Touring Frame,Current 295 | 503,16,"LL Touring Frame - Blue, 54",Components,Touring Frames,199.8519,Blue,LL Touring Frame,Current 296 | 504,16,"LL Touring Frame - Blue, 58",Components,Touring Frames,199.8519,Blue,LL Touring Frame,Current 297 | 505,16,"LL Touring Frame - Blue, 62",Components,Touring Frames,199.8519,Blue,LL Touring Frame,Current 298 | 506,16,"LL Touring Frame - Yellow, 44",Components,Touring Frames,199.8519,Yellow,LL Touring Frame,Current 299 | 507,16,"LL Touring Frame - Yellow, 50",Components,Touring Frames,199.8519,Yellow,LL Touring Frame,Current 300 | 508,16,"LL Touring Frame - Yellow, 54",Components,Touring Frames,199.8519,Yellow,LL Touring Frame,Current 301 | 509,16,"LL Touring Frame - Yellow, 58",Components,Touring Frames,199.8519,Yellow,LL Touring Frame,Current 302 | 510,16,"LL Touring Frame - Blue, 44",Components,Touring Frames,199.8519,Blue,LL Touring Frame,Current 303 | 511,12,"ML Mountain Frame-W - Silver, 40",Components,Mountain Frames,199.3757,Silver,ML Mountain Frame-W,Current 304 | 512,12,"ML Mountain Frame-W - Silver, 42",Components,Mountain Frames,199.3757,Silver,ML Mountain Frame-W,Current 305 | 513,12,"ML Mountain Frame-W - Silver, 46",Components,Mountain Frames,199.3757,Silver,ML Mountain Frame-W,Current 306 | 514,6,Rear Brakes,Components,Brakes,47.286,Silver,Rear Brakes,Current 307 | 515,15,LL Mountain Seat/Saddle,Components,Saddles,12.0413,NA,LL Mountain Seat/Saddle 2,Current 308 | 516,15,ML Mountain Seat/Saddle,Components,Saddles,17.3782,NA,ML Mountain Seat/Saddle 2,Current 309 | 517,15,HL Mountain Seat/Saddle,Components,Saddles,23.3722,NA,HL Mountain Seat/Saddle 2,Current 310 | 518,15,LL Road Seat/Saddle,Components,Saddles,12.0413,NA,LL Road Seat/Saddle 1,Current 311 | 519,15,ML Road Seat/Saddle,Components,Saddles,17.3782,NA,ML Road Seat/Saddle 2,Current 312 | 520,15,HL Road Seat/Saddle,Components,Saddles,23.3722,NA,HL Road Seat/Saddle 2,Current 313 | 521,15,LL Touring Seat/Saddle,Components,Saddles,12.0413,NA,LL Touring Seat/Saddle,Current 314 | 522,15,ML Touring Seat/Saddle,Components,Saddles,17.3782,NA,ML Touring Seat/Saddle,Current 315 | 523,15,HL Touring Seat/Saddle,Components,Saddles,23.3722,NA,HL Touring Seat/Saddle,Current 316 | 524,12,"LL Mountain Frame - Silver, 42",Components,Mountain Frames,144.5938,Silver,LL Mountain Frame,Current 317 | 525,12,"LL Mountain Frame - Silver, 44",Components,Mountain Frames,144.5938,Silver,LL Mountain Frame,Current 318 | 526,12,"LL Mountain Frame - Silver, 48",Components,Mountain Frames,144.5938,Silver,LL Mountain Frame,Current 319 | 527,12,"LL Mountain Frame - Silver, 52",Components,Mountain Frames,144.5938,Silver,LL Mountain Frame,Current 320 | 528,37,Mountain Tire Tube,Accessories,Tires and Tubes,1.8663,NA,Mountain Tire Tube,Current 321 | 529,37,Road Tire Tube,Accessories,Tires and Tubes,1.4923,NA,Road Tire Tube,Current 322 | 530,37,Touring Tire Tube,Accessories,Tires and Tubes,1.8663,NA,Touring Tire Tube,Current 323 | 531,12,"LL Mountain Frame - Black, 42",Components,Mountain Frames,136.785,Black,LL Mountain Frame,Current 324 | 532,12,"LL Mountain Frame - Black, 44",Components,Mountain Frames,136.785,Black,LL Mountain Frame,Current 325 | 533,12,"LL Mountain Frame - Black, 48",Components,Mountain Frames,136.785,Black,LL Mountain Frame,Current 326 | 534,12,"LL Mountain Frame - Black, 52",Components,Mountain Frames,136.785,Black,LL Mountain Frame,Current 327 | 535,37,LL Mountain Tire,Accessories,Tires and Tubes,9.3463,NA,LL Mountain Tire,Current 328 | 536,37,ML Mountain Tire,Accessories,Tires and Tubes,11.2163,NA,ML Mountain Tire,Current 329 | 537,37,HL Mountain Tire,Accessories,Tires and Tubes,13.09,NA,HL Mountain Tire,Current 330 | 538,37,LL Road Tire,Accessories,Tires and Tubes,8.0373,NA,LL Road Tire,Current 331 | 539,37,ML Road Tire,Accessories,Tires and Tubes,9.3463,NA,ML Road Tire,Current 332 | 540,37,HL Road Tire,Accessories,Tires and Tubes,12.1924,NA,HL Road Tire,Current 333 | 541,37,Touring Tire,Accessories,Tires and Tubes,10.8423,NA,Touring Tire,Current 334 | 542,13,LL Mountain Pedal,Components,Pedals,17.9776,Silver/Black,LL Mountain Pedal,Current 335 | 543,13,ML Mountain Pedal,Components,Pedals,27.568,Silver/Black,ML Mountain Pedal,Current 336 | 544,13,HL Mountain Pedal,Components,Pedals,35.9596,Silver/Black,HL Mountain Pedal,Current 337 | 545,13,LL Road Pedal,Components,Pedals,17.9776,Silver/Black,LL Road Pedal,Current 338 | 546,13,ML Road Pedal,Components,Pedals,27.568,Silver/Black,ML Road Pedal,Current 339 | 547,13,HL Road Pedal,Components,Pedals,35.9596,Silver/Black,HL Road Pedal,Current 340 | 548,13,Touring Pedal,Components,Pedals,35.9596,Silver/Black,Touring Pedal,Current 341 | 549,12,"ML Mountain Frame-W - Silver, 38",Components,Mountain Frames,199.3757,Silver,ML Mountain Frame-W,Current 342 | 550,12,"LL Mountain Frame - Black, 40",Components,Mountain Frames,136.785,Black,LL Mountain Frame,Current 343 | 551,12,"LL Mountain Frame - Silver, 40",Components,Mountain Frames,144.5938,Silver,LL Mountain Frame,Current 344 | 552,9,Front Derailleur,Components,Derailleurs,40.6216,Silver,Front Derailleur,Current 345 | 553,4,LL Touring Handlebars,Components,Handlebars,20.464,NA,LL Touring Handlebars,Current 346 | 554,4,HL Touring Handlebars,Components,Handlebars,40.6571,NA,HL Touring Handlebars,Current 347 | 555,6,Front Brakes,Components,Brakes,47.286,Silver,Front Brakes,Current 348 | 556,8,LL Crankset,Components,Cranksets,77.9176,Black,LL Crankset,Current 349 | 557,8,ML Crankset,Components,Cranksets,113.8816,Black,ML Crankset,Current 350 | 558,8,HL Crankset,Components,Cranksets,179.8156,Black,HL Crankset,Current 351 | 559,7,Chain,Components,Chains,8.9866,Silver,Chain,Current 352 | 560,3,"Touring-2000 Blue, 60",Bikes,Touring Bikes,755.1508,Blue,Touring-2000,Current 353 | 561,3,"Touring-1000 Yellow, 46",Bikes,Touring Bikes,1481.9379,Yellow,Touring-1000,Current 354 | 562,3,"Touring-1000 Yellow, 50",Bikes,Touring Bikes,1481.9379,Yellow,Touring-1000,Current 355 | 563,3,"Touring-1000 Yellow, 54",Bikes,Touring Bikes,1481.9379,Yellow,Touring-1000,Current 356 | 564,3,"Touring-1000 Yellow, 60",Bikes,Touring Bikes,1481.9379,Yellow,Touring-1000,Current 357 | 565,3,"Touring-3000 Blue, 54",Bikes,Touring Bikes,461.4448,Blue,Touring-3000,Current 358 | 566,3,"Touring-3000 Blue, 58",Bikes,Touring Bikes,461.4448,Blue,Touring-3000,Current 359 | 567,3,"Touring-3000 Blue, 62",Bikes,Touring Bikes,461.4448,Blue,Touring-3000,Current 360 | 568,3,"Touring-3000 Yellow, 44",Bikes,Touring Bikes,461.4448,Yellow,Touring-3000,Current 361 | 569,3,"Touring-3000 Yellow, 50",Bikes,Touring Bikes,461.4448,Yellow,Touring-3000,Current 362 | 570,3,"Touring-3000 Yellow, 54",Bikes,Touring Bikes,461.4448,Yellow,Touring-3000,Current 363 | 571,3,"Touring-3000 Yellow, 58",Bikes,Touring Bikes,461.4448,Yellow,Touring-3000,Current 364 | 572,3,"Touring-3000 Yellow, 62",Bikes,Touring Bikes,461.4448,Yellow,Touring-3000,Current 365 | 573,3,"Touring-1000 Blue, 46",Bikes,Touring Bikes,1481.9379,Blue,Touring-1000,Current 366 | 574,3,"Touring-1000 Blue, 50",Bikes,Touring Bikes,1481.9379,Blue,Touring-1000,Current 367 | 575,3,"Touring-1000 Blue, 54",Bikes,Touring Bikes,1481.9379,Blue,Touring-1000,Current 368 | 576,3,"Touring-1000 Blue, 60",Bikes,Touring Bikes,1481.9379,Blue,Touring-1000,Current 369 | 577,3,"Touring-2000 Blue, 46",Bikes,Touring Bikes,755.1508,Blue,Touring-2000,Current 370 | 578,3,"Touring-2000 Blue, 50",Bikes,Touring Bikes,755.1508,Blue,Touring-2000,Current 371 | 579,3,"Touring-2000 Blue, 54",Bikes,Touring Bikes,755.1508,Blue,Touring-2000,Current 372 | 580,2,"Road-350-W Yellow, 40",Bikes,Road Bikes,1082.51,Yellow,Road-350-W,Current 373 | 581,2,"Road-350-W Yellow, 42",Bikes,Road Bikes,1082.51,Yellow,Road-350-W,Current 374 | 582,2,"Road-350-W Yellow, 44",Bikes,Road Bikes,1082.51,Yellow,Road-350-W,Current 375 | 583,2,"Road-350-W Yellow, 48",Bikes,Road Bikes,1082.51,Yellow,Road-350-W,Current 376 | 584,2,"Road-750 Black, 58",Bikes,Road Bikes,343.6496,Black,Road-750,Current 377 | 585,3,"Touring-3000 Blue, 44",Bikes,Touring Bikes,461.4448,Blue,Touring-3000,Current 378 | 586,3,"Touring-3000 Blue, 50",Bikes,Touring Bikes,461.4448,Blue,Touring-3000,Current 379 | 587,1,"Mountain-400-W Silver, 38",Bikes,Mountain Bikes,419.7784,Silver,Mountain-400-W,Current 380 | 588,1,"Mountain-400-W Silver, 40",Bikes,Mountain Bikes,419.7784,Silver,Mountain-400-W,Current 381 | 589,1,"Mountain-400-W Silver, 42",Bikes,Mountain Bikes,419.7784,Silver,Mountain-400-W,Current 382 | 590,1,"Mountain-400-W Silver, 46",Bikes,Mountain Bikes,419.7784,Silver,Mountain-400-W,Current 383 | 591,1,"Mountain-500 Silver, 40",Bikes,Mountain Bikes,308.2179,Silver,Mountain-500,Current 384 | 592,1,"Mountain-500 Silver, 42",Bikes,Mountain Bikes,308.2179,Silver,Mountain-500,Current 385 | 593,1,"Mountain-500 Silver, 44",Bikes,Mountain Bikes,308.2179,Silver,Mountain-500,Current 386 | 594,1,"Mountain-500 Silver, 48",Bikes,Mountain Bikes,308.2179,Silver,Mountain-500,Current 387 | 595,1,"Mountain-500 Silver, 52",Bikes,Mountain Bikes,308.2179,Silver,Mountain-500,Current 388 | 596,1,"Mountain-500 Black, 40",Bikes,Mountain Bikes,294.5797,Black,Mountain-500,Current 389 | 597,1,"Mountain-500 Black, 42",Bikes,Mountain Bikes,294.5797,Black,Mountain-500,Current 390 | 598,1,"Mountain-500 Black, 44",Bikes,Mountain Bikes,294.5797,Black,Mountain-500,Current 391 | 599,1,"Mountain-500 Black, 48",Bikes,Mountain Bikes,294.5797,Black,Mountain-500,Current 392 | 600,1,"Mountain-500 Black, 52",Bikes,Mountain Bikes,294.5797,Black,Mountain-500,Current 393 | 601,5,LL Bottom Bracket,Components,Bottom Brackets,23.9716,NA,LL Bottom Bracket,Current 394 | 602,5,ML Bottom Bracket,Components,Bottom Brackets,44.9506,NA,ML Bottom Bracket,Current 395 | 603,5,HL Bottom Bracket,Components,Bottom Brackets,53.9416,NA,HL Bottom Bracket,Current 396 | 604,2,"Road-750 Black, 44",Bikes,Road Bikes,343.6496,Black,Road-750,Current 397 | 605,2,"Road-750 Black, 48",Bikes,Road Bikes,343.6496,Black,Road-750,Current 398 | 606,2,"Road-750 Black, 52",Bikes,Road Bikes,343.6496,Black,Road-750,Current 399 | -------------------------------------------------------------------------------- /Dashboard/AdventureWorks Dashboard.pbix: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/0c06f427dcdc90915329b18407ad0d484d663c07/Dashboard/AdventureWorks Dashboard.pbix -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AdventureWorks-DB-EDA-with-SQL-and-PowerBI- 2 | 3 | Welcome to the AdventureWorks Database Analysis and Visualization project! 4 | 5 | ## Project Overview 6 | This project aims to provide insights and visualizations into the AdventureWorks database, which is a sample database provided by Microsoft for learning and testing purposes. 7 | 8 | The AdventureWorks database contains data related to a fictitious bicycle manufacturer, including information on products, sales, customers, and employees. In this project, we will use Microsoft Power BI to analyze and visualize the data in order to gain a better understanding of the business operations of AdventureWorks. 9 | 10 | To get started with this project, you will need to have access to the AdventureWorks database and have Microsoft Power BI installed on your computer. The analysis and visualization will be performed through Power BI, and the results will be presented in the form of interactive reports and dashboards. 11 | 12 | ## Prequirement 13 | Database - [AdventureWorksDW2019.bak](https://learn.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-ver16&tabs=ssms) 14 | 15 | ## Requirements 16 | * Query Editing Tool - Microsoft SQL Server Management Studio (SSMS) 17 | * Visualization Tool - Microsoft PowerBI 18 | 19 | ## The following tables were chosen for analysis: 20 | * DimCustomer.sql 21 | * DimDate.sql 22 | * DimProducts.sql 23 | * FactInternetSales.sql 24 | * DimGeography.sql 25 | 26 | 27 | ## Data Visualization 28 | ##### i. Entity Relationship Diagram Model 29 | ![Image](https://github.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/blob/main/Visualization/entity_relationship_diagram.JPG) 30 | 31 | ##### ii. Sales Overview Dashboard 32 | ![Image](https://github.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/blob/main/Visualization/sales_overview.jpg) 33 | 34 | ##### iii. Product Details Dashboard 35 | ![Image](https://github.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/blob/main/Visualization/product_details.jpg) 36 | 37 | ##### iv. Customer Details Dashbaord 38 | ![Image](https://github.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/blob/main/Visualization/customer_details.jpg) 39 | 40 | #### I hope that this project will be a valuable resource for anyone looking to learn more about data analysis and visualization using Microsoft Power BI. 41 | -------------------------------------------------------------------------------- /SQL Scripts/customer_cleaned.sql: -------------------------------------------------------------------------------- 1 | 2 | /*** Table Cleaned ***/ 3 | 4 | USE AdventureWorksDW2019; 5 | 6 | SELECT CustomerKey, 7 | GeographyKey, 8 | CONCAT(FirstName, ' ', LastName) AS [CustomerName], 9 | BirthDate, CASE 10 | WHEN MaritalStatus = 'M' THEN 'Married' 11 | WHEN MaritalStatus = 'S' THEN 'Single' 12 | END AS MaritalStatus, 13 | CASE 14 | WHEN Gender = 'M' THEN 'Male' 15 | WHEN Gender = 'F' THEN 'Female' 16 | END AS Gender 17 | FROM DimCustomer; 18 | -------------------------------------------------------------------------------- /SQL Scripts/date_cleaned.sql: -------------------------------------------------------------------------------- 1 | 2 | /*** Date Table Cleaned ***/ 3 | 4 | USE AdventureWorksDW2019; 5 | 6 | SELECT DateKey, 7 | FullDateAlternateKey AS [Date], 8 | EnglishDayNameOfWeek AS [Day], 9 | EnglishMonthName AS [Month], 10 | CalendarYear AS [Year] 11 | FROM DimDate; 12 | -------------------------------------------------------------------------------- /SQL Scripts/geography_cleaned.sql: -------------------------------------------------------------------------------- 1 | 2 | /*** Geography Table Cleaned ***/ 3 | 4 | USE AdventureWorksDW2019; 5 | 6 | SELECT GeographyKey, 7 | City, 8 | EnglishCountryRegionName AS [CountryName], 9 | SalesTerritoryRegion, 10 | SalesTerritoryGroup, 11 | PostalCode, 12 | S.SalesTerritoryKey 13 | FROM DimGeography G 14 | INNER JOIN DimSalesTerritory S 15 | ON G.SalesTerritoryKey = S.SalesTerritoryKey; 16 | -------------------------------------------------------------------------------- /SQL Scripts/products_cleaned.sql: -------------------------------------------------------------------------------- 1 | 2 | /*** Products Table Cleaned ***/ 3 | 4 | USE AdventureWorksDW2019; 5 | 6 | SELECT ProductKey, 7 | P.ProductSubcategoryKey, 8 | EnglishProductName AS [ProductName], 9 | Category, 10 | Subcategory, 11 | StandardCost, 12 | Color, 13 | ModelName, 14 | CASE 15 | WHEN Status IS NULL THEN 'Outdate' 16 | WHEN Status = 'Current' THEN 'Current' 17 | END AS 'Status' 18 | FROM DimProduct P 19 | INNER JOIN (SELECT C.ProductCategoryKey, 20 | ProductSubcategoryKey, 21 | EnglishProductCategoryName AS [Category], 22 | EnglishProductSubcategoryName AS [Subcategory] 23 | FROM DimProductCategory C 24 | INNER JOIN DimProductSubcategory S 25 | ON C.ProductCategoryKey = S.ProductCategoryKey) C 26 | ON P.ProductSubcategoryKey = C.ProductSubcategoryKey; 27 | -------------------------------------------------------------------------------- /SQL Scripts/sales_cleaned.sql: -------------------------------------------------------------------------------- 1 | 2 | /*** Sales Table Cleaned ***/ 3 | 4 | USE AdventureWorksDW2019; 5 | 6 | SELECT ProductKey, 7 | OrderDateKey, 8 | CustomerKey, 9 | SalesTerritoryKey, 10 | OrderQuantity, 11 | ProductStandardCost, 12 | SalesAmount, 13 | CAST(OrderDate AS date) AS [OrderDate] 14 | FROM FactInternetSales; 15 | -------------------------------------------------------------------------------- /Visualization/customer_details.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/0c06f427dcdc90915329b18407ad0d484d663c07/Visualization/customer_details.jpg -------------------------------------------------------------------------------- /Visualization/entity_relationship_diagram.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/0c06f427dcdc90915329b18407ad0d484d663c07/Visualization/entity_relationship_diagram.JPG -------------------------------------------------------------------------------- /Visualization/product_details.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/0c06f427dcdc90915329b18407ad0d484d663c07/Visualization/product_details.jpg -------------------------------------------------------------------------------- /Visualization/sales_overview.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ebunoluwazaynab/AdventureWorks-DB-EDA-with-SQL-and-PowerBI-/0c06f427dcdc90915329b18407ad0d484d663c07/Visualization/sales_overview.jpg --------------------------------------------------------------------------------