首页 > 解决方案 > 访问上一条记录以比较 DAX POWER BI 中的值

问题描述

我需要访问 DTH_REFER_PEDID 列的先前记录来进行 IF 比较 ( DTH_REFER_PEDID-1 <> "A")。也就是我在读取索引X,我需要和索引X-1进行比较

在此处输入图像描述

Addition_Stats = VAR Atendido_OV = PR_HIST_MOVIM_PEDID[OVITEM_Hist]
VAR linha_anterior2 = CALCULATE(values(PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL]);filter(PR_HIST_MOVIM_PEDID;EARLIER(PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID])))      
Return 
                       if(PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Month]<PR_HIST_MOVIM_PEDID[DAT_MAIOR_PLANE].[Month];"Atraso mês ant";
                            if(PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL] = "A" && PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Day]<=PR_HIST_MOVIM_PEDID[DAT_MAIOR_PLANE].[Day];"Atendido no Prazo";
                                 if((PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL]="P"||PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL]="L") && PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Day]<= PR_HIST_MOVIM_PEDID[DAT_MAIOR_PLANE].[Day];"Planejado no prazo";
                                      if(PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL]<>"A" && PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Day]>PR_HIST_MOVIM_PEDID[DAT_MAIOR_PLANE].[Day];"Em atraso";
                                             if(PR_HIST_MOVIM_PEDID[STA_ITEM_PEDCL] = "A" 
                                                  &&  linha_anterior2 <>"A"
                                                  && PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Day]>PR_HIST_MOVIM_PEDID[DAT_MAIOR_PLANE].[Day];"Atend fora Prazo"
                                               
                                                      ;IF((PR_HIST_MOVIM_PEDID[OVITEM_Hist]=Atendido_OV)&&(PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID]>FIRSTDATE(PR_HIST_MOVIM_PEDID[DTH_REFER_PEDID].[Date]));"A retido";"NA")
                                               )
                                        )
                                    )
                               )
                      )
        
//)

显示的错误是:A circular dependency has been detected: PR_HIST_MOVIM_PEDID [Addition_Stats].

我如何比较DTH_REFER_PEDID-1 <> "A"

标签: powerbidaxpowerpivot

解决方案


处理上一条或下一条记录的一种简单方法是: 确保您的数据位于具有主键 (=ID) 的表中 使用表中的所有字段进行查询,并添加一个 ID+1 的列。(或 ID-1)对表和上述查询进行另一个查询,并在 ID 和 ID+1(或 ID-1)之间进行连接。放置表的所有字段和第一个查询,最终得到 1 条记录中的所有值。这样您就可以使用上一个或下一个值。


推荐阅读