在Dax中转换sql statemnt

时间:2018-10-29 06:35:33

标签: powerbi dax

我有一个包含多个案例的sql语句,现在我必须用Dax编写该语句 我尝试使用开关,但输出不相同 sql语句:

CASE WHEN @STRIKER!='' OR @NONSTRIKER!='' THEN   (RUNS + (CASE WHEN BYES = 0 AND LEGBYES = 0 THEN OVERTHROW ELSE 0 END))            
             WHEN @BOWLER!='' THEN (RUNS + WIDE+ (CASE WHEN BALL.NOBALL > 0 AND (BALL.BYES > 0 OR BALL.LEGBYES > 0) THEN BALL.BYES + BALL.NOBALL + BALL.LEGBYES            
                        WHEN BALL.NOBALL > 0 AND BALL.BYES = 0 AND BALL.LEGBYES = 0 THEN BALL.NOBALL            
                        ELSE 0 END) + (CASE WHEN BYES = 0 AND LEGBYES = 0 THEN OVERTHROW ELSE 0 END))            
             ELSE GRANDTOTAL END ) AS RUNS  

1 个答案:

答案 0 :(得分:0)

首先,我将简化案例说明

我假设您有case语句,因为结果中可能存在NULLS?您可以尝试

RUNS + 
WIDE + 
ISNULL(BALL.NOBALL,0) + 
ISNULL(BALL.BYES,0) + 
ISNULL(BALL.LEGBYES,0) + 
ISNULL(OVERTHROW,0)

但是,如果您已经在PowerBI中获得了列出了这些列的模型,则可以简单地添加一个计算所得的列,该列将对所有将忽略空值的列求和...

Total = RUNS + WIDE + NOBALL + BYES + LEGBYES + OVERTHROW

?但是如果没有模式,就很难知道解决方案是什么。

祝你好运!