В качестве примера, скажем, у меня есть следующая (упрощенная) таблица (называемая NumericValue):
Age Gender Occupation Location Value
40 M Accountant Johannesburg 100
40 F Accountant Johannesburg 120
40 M Engineer NULL 110
40 F Engineer NULL 110
Теперь предположим, что у меня есть таблица с именем Employees:
Employee Number Age Gender Occupation Location
1000123 40 F Engineer Cape Town
1000124 40 M Accountant Johannesburg
Теперь мне нужно выбрать поле «Значение» для этих двух сотрудников. И скажем, у инженеров никогда не будет «местоположения» в таблице NumericValue, поэтому я не могу просто сделать простое соединение. Вместо этого я переформатировал свой «NumericTable» следующим образом:
Table: "CategoryValue"
Category Value
1 100
2 120
3 110
4 110
С таблицей "свойств", подобной этой:
Table: "CategoryProperty"
Category FieldName FieldValue
1 Age 40
1 Gender M
1 Occupation Accountant
1 Location Johannesburg
.
.
4 Age 40
4 Gender F
4 Occupation Engineer
(примечание: нет записи для "местоположения" в категории 4, которая относится к 40-летней женщине-инженеру)
Что имеет смысл для меня, поскольку у меня есть записи только в тех случаях, когда определенное поле категоризации имеет значение. Но как мне решить эту проблему и извлечь поле «Значение» для конкретного сотрудника?
Спасибо
Karl