2

基本前提:

  • “订单”由来自多个“区域”的项目组成。
  • 客户可以在拙劣的“订单”上致电要求“积分”(退款)。
  • 这里有一个真正的多对多关系,因为一个订单可以在不同时间调用多个信用;同样,客户可以就多个订单致电一次(仅生成一份贷项通知单)。
  • “学分”粒度是在项目级别,即

    CREDIT  |   SO      |   ITEM    |   ZONE    |   CREDAMT
    -------------------------------------------------------
    42      |   1       |   56      |   A       |   $6
    42      |   1       |   52      |   A       |   $8
    42      |   1       |   62      |   B       |   $20
    42      |   2       |   56      |   A       |   $12
    
  • “订单详细信息”粒度在区域级别,即

    SO      |   ZONE    |   DOL_AMT
    -------------------------------
    1       |   A       |   $50
    1       |   B       |   $20
    1       |   C       |   $100
    2       |   A       |   $26
    
  • 我有一个“区域”过滤表,可以帮助我更好地分类并汇总到更广泛的类别,即

    ZONE    |   TEMP    |   SORT
    -------------------------------
    A       |   DRY     |   2
    B       |   COLD    |   3
    C       |   DRY     |   1
    

我需要的:

  • 我想要一对视觉效果,以并排比较按区域的订单总数和按区域的信用总数。

什么工作:

  • 'Credits' 组件很简单,CreditTotal = abs(sumx(Credits,Credits[CREDAMT]))Zone 作为图例项。
  • 我有一个 ORDER 组件,当该区域位于贷项通知单中时该组件可以工作

    Order $ by Zone =
    CALCULATE (
      SUM ( 'Order Details'[DOL_AMT] ),
      USERELATIONSHIP ( 'Order Details'[SO], Credits[SO] ),
      ALL ( Credits[CreditCategory] )
    )
    

我的问题:

  • 没有信用的区域不会出现。所以而不是

    CREDIT  |   ZONE    |   ORDER $ BY ZONE
    ----------------------------------
    42      |   A       |   $76
    42      |   B       |   $20
    42      |   C       |   $100
    

    我明白了

    CREDIT  |   ZONE    |   ORDER $ BY ZONE
    ----------------------------------
    42      |   A       |   $76
    42      |   B       |   $20
    

我试图通过添加ALL(Zones[Zone])和/或删除此过滤器ALL('Order Details'[Zone]),但它没有帮助,大概是因为它报告了“信用”表中实际找到的“所有区域”。我希望有某种方法可以要求它根据“信用”表中的 SO 报告“订单详细信息”表中的所有区域。

如果有帮助,以下是关系的结构方式;顺便说一句,我尝试混合和匹配活动/非活动、单向与双向过滤等的各种组合,但当前配置似乎是唯一可以按需要远程工作的配置。 数据模型中的关系

我很感激任何建议;如果有任何不清楚的地方,请告诉我。谢谢你。

4

1 回答 1

1

'Order Details'[Zone]我能够通过使用而不是Zones[Zone]在表格中的视觉和这个措施来让它工作:

Order $ by Zone = 
CALCULATE (
  SUM ( 'Order Details'[DOL_AMT] ),
  USERELATIONSHIP ( 'Order Details'[SO], Credits[SO] )
)

Credits请注意,无论您的度量如何,与 zone 相对应的行中都没有行,因此除非您确切地告诉它如何C在列中放入什么,否则它不知道该放入什么。CREDIT

如果您删除CREDIT维度列,那么您不需要像我上面建议的那样交换表。您可以只使用上面的度量,然后为该列编写一个新度量:CREDIT

CreditValue =
CALCULATE(
    VALUES(Credits[CREDIT]),
    ALL(Credits),
    Credits[SO] IN VALUES('Order Details'[SO])
)
于 2018-12-04T14:58:42.590 回答