0

举个例子,假设我有以下(简化的)表(称为 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岁的女工程师)

这对我来说很有意义,因为我只有特定分类字段很重要的条目。但是我该如何解决这个问题并为特定员工提取 Value 字段?

谢谢卡尔
_

4

1 回答 1

0

你为什么不做这样的事情?

Select  e.EmployeeNumber,
        e.Age,
        e.Gender,
        e.Occupation,
        e.Location,
        nv.Value
From Employees e
Join NumericValue nv on e.Age = nv.Age
                        And e.Gender = nv.Gender
                        And e.Occupation = nv.Occupation
                        And e.Location = IsNull(nv.Location, e.Location)

只需将 NumericValue Location 替换为 Employee Location 当它为 NULL 时的值

于 2010-12-14T17:27:58.907 回答