如何使用DAX获取未加入的项目

时间:2018-12-14 16:16:01

标签: sql powerbi dax business-intelligence

我正在处理Power BI dax问题。我有发票表(M)和经销商表(1)。发票表与其他一些表(如“分销商”,“物品”等)相连。由于代理商表已加入到发票表中,因此我总是会获得具有发票值的代理商。我如何使用Dax语句获取“非发票”经销商。我需要获得未开具发票的经销商,但需要按国家(地区)划分。 等效的sql查询应该是这样的。

从a中选择a。* 左外连接b在a.id = b.a_id上 其中b.a_id为空

Data Model enter image description here   enter image description here

这是我尝试过的内容,但我认为价值观不正确。

TotalDealers = CALCULATE(COUNTROWS('dealers'),ALL('dealers'))

谢谢!

1 个答案:

答案 0 :(得分:2)

如果您希望没有发票的经销商数量,可以使用以下方式:

Uninvoiced Dealers = 
COUNTROWS ( 
    FILTER ( 
        tbl_dealers,
        COUNTROWS ( RELATEDTABLE( tbl_invoice ) ) = 0
    )
)

但是,您的架构不允许您按区域划分未开具发票的经销商,因为没有关系来确定没有发票的经销商的区域...

如果通过salesrep表确定了未开具发票的经销商的区域,那么您需要在salesrep和区域之间添加(无效)关系,并使用USERELATIONSHIP作为衡量指标中的过滤器:

Uninvoiced Dealers = 
CALCULATE ( 
    COUNTROWS ( 
        FILTER ( 
            tbl_dealers,
            COUNTROWS ( RELATEDTABLE( tbl_invoice ) ) = 0
        )
    ),
    USERELATIONSHIP ( tbl_salesreps[region_id], tbl_regions[id] )
)