访问上一条记录以比较DAX POWER BI中的值

时间:2018-05-04 13:41:17

标签: powerbi dax powerpivot

我需要访问DTH_REFER_PEDID列的上一条记录才能进行IF比较(DTH_REFER_PEDID-1 <> "A")。 也就是说,我正在读索引X,我需要与索引X-1进行比较

enter image description here

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"

1 个答案:

答案 0 :(得分:0)

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