QBO3矩阵过滤器未按预期排序

时间:2017-10-27 16:27:02

标签: rules fuzzy-logic

我有两个QBO基础:

  1. Matrix A有1个输入和1个输出,
  2. Matrix B有3个输入和1个输出
  3. 当我导航到Matrix A时,我看到类似的东西:

    | Client | Price  | 
    | ------ | ------ |
    |        | 120.00 |
    | A,B,C  | 100.00 |
    | D,E    |  90.00 |
    | F      |  95.00 |
    

    当我将E输入客户端过滤器时,Matrix按照我的预期进行排序,第一行“有效”,其他行划掉:

    | Client | Price  | 
    | ------ | ------ |
    | D,E    |  90.00 |
    |        | 120.00 |
    | A,B,C  | 100.00 |
    | F      |  95.00 |
    

    Matrix B看起来像这样:

    | Client    | State | Investor | Price  |
    | --------- | ----- | -------- | ------ |
    |           | CA    | NOT(2,3) | 100.00 |
    | San Diego | CA    |          | 110.00 |
    |           | FL    |          |  95.00 |
    | Miami     | FL    | 3        | 105.00 |
    

    当我在“客户”列过滤器中输入“迈阿密”时,排序显示如下,所有列划掉了:

    | Client    | State | Investor | Price  |
    | --------- | ----- | -------- | ------ |
    |           | CA    | NOT(2,3) | 100.00 |
    |           | FL    |          | 95.00  |
    | San Diego | CA    |          | 110.00 |
    | Miami     | FL    | 3        | 105.00 |
    

    为什么我不把迈阿密排在最前面?

1 个答案:

答案 0 :(得分:1)

在您的第二个示例中,迈阿密的行也需要State ='FL',因此该行不匹配。要使迈阿密排匹配,您必须输入City ='Miami' State ='FL'。

评估Matrix时,它会计算以下内容:

  • 表示矩阵的每一行
    • 表示矩阵的每个输入
      • 如果行的值等于您的输入,则为“匹配”
      • 如果该行有值并且您没有提供任何输入,则表示“不匹配”
      • 如果行有NOT(值)并且您没有提供输入,那就是'匹配'
  • 排序
    • 体重下降,
    • 然后是不匹配的数量,
    • 然后按比赛数

对于Matrix B输出:

| Client    | State | Investor | Price  |
| --------- | ----- | -------- | ------ |
|           | CA    | NOT(2,3) | 100.00 | Mismatch = 1, Match=1
|           | FL    |          | 95.00  | Mismatch = 1, Match=0
| San Diego | CA    |          | 110.00 | Mismatch = 2, Match=1
| Miami     | FL    | 3        | 105.00 | Mismatch = 2, Match=1

简而言之:

  • '迈阿密'系列需要3个输入才能匹配,2个没有输入,所以它位于底部
  • 第一行(CA)实际上匹配您的“空”输入,因为它只关心投资者不是投资者2或3 - 没有投资者符合此要求!