This project delivers a complete data workflow for cleaning, analyzing, and reporting on the AdventureWorks dataset using MySQL, Python, and Excel. It mirrors real-world BI tasks like data validation, SQL-based transformations, and visual reporting preparation.
To simulate a business-focused data analysis pipeline that:
- Identifies and cleans raw sales data
- Prepares analysis-ready tables using SQL and Python
- Generates KPIs and reusable SQL views
- Exports data for Excel-based reporting and visualization
- SQL (MySQL Workbench) β cleaning, joining, and view creation
- Python (Pandas, OpenPyXL) β data preprocessing, CSV manipulation, Excel exports
- Excel β for pivot charts and dashboard-style insights
| Component | Description |
|---|---|
01_AdventureWorks_Detecting&Identifying.sql |
SQL diagnostics for data issues and structure |
02_AdventureWorks_Cleaning.sql |
SQL-based cleaning, key correction, and date conversions |
03_AdventureWorks_Analysis.sql |
Reusable views for metrics like sales trends and top customers |
AdventureWorks_Data_Cleaning.ipynb |
Python script to inspect and clean the original Excel dataset |
Export_CSV_Files.ipynb |
Python script to export each Excel sheet as an individual .csv |
Combined_CSV_for_Visuals.ipynb |
Python script to merge .csv exports into a single .xlsx for visualization |
Exports/ |
Folder containing .csv files generated from SQL views |
Combined_for_Visuals.xlsx |
Final Excel file for reporting, with multiple KPI sheets |
| View | Description |
|---|---|
vw_total_sales |
Total revenue |
vw_sales_by_category |
Sales and quantity by product category |
vw_monthly_sales_trend |
Month-by-month sales evolution |
vw_yoy_sales_growth |
Year-over-year sales growth (%) |
vw_top_resellers |
Top 5 resellers by sales and AOV |
vw_top_customers |
Top 5 customers by sales and AOV |
| Step | Tool | Output |
|---|---|---|
| Data cleaning | Python (.ipynb) |
Cleaned .xlsx file |
| SQL analysis | MySQL Workbench | Materialized SQL views |
| View export | SQL or Python | Individual .csv files |
| Report assembly | Python | Combined Excel report: Combined_for_Visuals.xlsx |
## π Dashboard Snapshot
- Invalid foreign keys (
-1) replaced with dummy entries:CustomerKey = 10999,ResellerKey = 0 - Dates originally in
YYYYMMDDint format converted to SQLDATE - Final analysis is portable via
.csvor.xlsxand ready for BI or Excel dashboards
This project uses the Microsoft Power BI AdventureWorks Sales Sample:
AdventureWorks Sales.xlsx
- SQL and ETL portfolio demonstration
- Excel + SQL dashboard integration practice
- Learning how to bridge SQL and Python for BI reporting
Ali Dakak
π LinkedIn
π Data Portfolio Resume
π Tableau Resume
π GitHub Resume
