Sample Outdoors organization and schemas
Under the holding company GO Consolidated, there are six distinct sales organizations, each with their own departments and sales branches.
GO Consolidated consists of sales organizations for GO Americas, GO Asia Pacific, and GO Accessories. The GO Accessories sales organization consists of GO Northern Europe, GO Central Europe, and GO Southern Europe.
The Outdoors Companies
Five of the six companies are regionally-based companies, whose sales region is identified in the company name. These five companies sell the complete line of outdoor products including:
- Camping Equipment
- Golf Equipment
- Mountaineering Equipment
- Personal Accessories
- Outdoor Protection
The Accessory Company
GO Accessories Inc. operates differently than the five outdoor companies and stands apart in several other areas:
- GO Accessories has its own collection of accessories, differentiated from the outdoor companies by brand, name, price, color and size.
- GO Accessories sells from a single branch to all regions and retailers.
- GO Accessories functions both as an operating company based in Geneva, and as owner or part owner of three GO subsidiaries in Europe. This offers a complex structure that is useful in samples that show office-of-finance type reporting.
Unbalanced hierarchy
The ownership by GO Accessories of the European companies supports applications designed for office-of-finance reporting. Samples applications can include inter-company eliminations and consolidation up to the highest level node - GO Consolidated. In this structure, aggregations of the European organizations occur through GO Accessories.
The resulting unbalanced hierarchy has one additional level, as shown in the following table. At level 3 of the organization structure, GO Central Europe (GOCEU) is at the same level as the operations department for GO Americas (GOAMXOP).
Level | Example (ID) | Example (data) |
---|---|---|
Org level 1 | GOCON |
GO CONSOLIDATED |
Org level 2 | GOAMX GOEUX |
GO Americas GO Accessories |
Org level 3 | GOAMXOP GOCEU |
GO Americas operations GO Central Europe |
Org level 4 | 30 GOCEUOP |
Sales branch 30 - Sao Paulo - BRA GO Central Europe operations |
Org level 5 | 30 6 |
Sales branch 30 - Sao Paulo - BRA Sales branch 6 - Paris - FRA |
Balanced hierarchy - view
You can use views to balance the organization hierarchy by side-stepping the relationship between GO Accessories and the European companies. Use a view when you want to create samples that show metrics and aggregations that are distinct for each corporate entity.
Gosales VIEW_BALANCED_ORG
SELECT TOP 100 PERCENT ORGANIZATION_1.ORGANIZATION_PARENT AS ORG_LEVEL1_CODE,
gosaleshr.ORGANIZATION.ORGANIZATION_PARENT AS ORG_LEVEL2_CODE,
gosaleshr.ORGANIZATION.ORGANIZATION_CODE
FROM gosaleshr.ORGANIZATION ORGANIZATION_1 RIGHT OUTER JOIN
gosaleshr.ORGANIZATION ON ORGANIZATION_1.ORGANIZATION_CODE =
gosaleshr.ORGANIZATION.ORGANIZATION_PARENT
WHERE (gosaleshr.ORGANIZATION.ORGANIZATION_CODE BETWEEN N'006' AND
N'8820')
ORDER BY ORGANIZATION_1.ORGANIZATION_PARENT,
gosaleshr.ORGANIZATION.ORGANIZATION_PARENT DESC,
gosaleshr.ORGANIZATION.ORGANIZATION_CODE
gosalesdw.VIEW_BALANCED_ORG
SELECT gosalesdw.GO_ORG_DIM.ORGANIZATION_KEY, GO_ORG_DIM_1.ORGANIZATION_PARENT AS
ORG_LEVEL1_CODE, GO_ORG_NAME_LOOKUP_1.ORGANIZATION_NAME_EN AS ORG_LEVEL1_NAME,
gosalesdw.GO_ORG_DIM.ORGANIZATION_PARENT AS ORG_LEVEL2_CODE,
GO_ORG_NAME_LOOKUP_2.ORGANIZATION_NAME_EN AS ORG_LEVEL2_NAME,
gosalesdw.GO_ORG_DIM.ORGANIZATION_CODE AS ORG_CODE,
gosalesdw.GO_ORG_NAME_LOOKUP.ORGANIZATION_NAME_EN AS ORG_NAME
FROM gosalesdw.GO_ORG_NAME_LOOKUP GO_ORG_NAME_LOOKUP_2 INNER JOIN
gosalesdw.GO_ORG_DIM INNER JOIN
gosalesdw.GO_ORG_NAME_LOOKUP ON
gosalesdw.GO_ORG_DIM.ORGANIZATION_CODE =
gosalesdw.GO_ORG_NAME_LOOKUP.ORGANIZATION_CODE ON
GO_ORG_NAME_LOOKUP_2.ORGANIZATION_CODE =
gosalesdw.GO_ORG_DIM.ORGANIZATION_PARENT INNER JOIN
gosalesdw.GO_ORG_NAME_LOOKUP GO_ORG_NAME_LOOKUP_1 INNER JOIN
gosalesdw.GO_ORG_DIM GO_ORG_DIM_1 ON GO_ORG_NAME_LOOKUP_1.ORGANIZATION_CODE =
GO_ORG_DIM_1.ORGANIZATION_PARENT ON
gosalesdw.GO_ORG_DIM.ORGANIZATION_PARENT =
GO_ORG_DIM_1.ORGANIZATION_CODE
WHERE (gosalesdw.GO_ORG_DIM.ORGANIZATION_CODE BETWEEN N'006' AND N'8820')
GO Departments
The Sample Outdoors companies are divided into operating and corporate departments. Each organization has the same structure.
Applications for financial and planning data use the department structure in the sample budgets and forecasts.
Sales branches under operations, and HR departments under corporate, are the richest sources of data for querying and analysis.
Division (GL) | Department (GL) |
---|---|
Corporate | Sales (Corporate) |
Corporate | Marketing (1750) |
Corporate | IS&T |
Corporate | Human Resources |
Corporate | Finance |
Corporate | Procurement |
Operations | Sales branches |
Operations | Production and Distribution |
Operations | Customer Service |
GO Operations
Metrics such as revenue, quantities, and cost of goods, aggregate through levels from sales rep to branch to operations under each corporate banner.
Data from other departments ties into the sales data. For example, the marketing department implements sales campaigns.
Human Resources
Human resources data exists for metrics such as compensation, benefits, training and surveys. Employees are paid hourly, or receive salaries. Compensation may including commission and bonuses. Vacation and sick days are part of the benefits package.
Each Sample Outdoors organization is staffed by a variety of employees including personnel for marketing, finance, sales, as well as those in other departments. Employee history exists for employees that change positions or have new managers.
In the warehouse data (GOSALESDW), the employee history is contained in a slowly changing dimension, in which an employee code may be a repeating value and the employee key is unique.
In the transactional data (GOSALES), employee history requires filtering on a date range in order to assign transaction records to employees in the appropriate time period. Filtering also prohibits double-counting that can occur with repeating employee codes. For example, to capture an accurate history of an employee at the time of training, the date range is qualified.
WHERE (TRAINING_DETAILS.TRAINING_DATE BETWEEN
EMPLOYEE_HISTORY.RECORD_START_DATE AND EMPLOYEE_HISTORY.RECORD_END_DATE)
Alternatively, you can select active records by filtering out employee history, which returns only the current manager or job position of the employee.
WHERE (EMPLOYEE_HISTORY.RECORD_END_DATE IS NULL)