Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将SQL转换为Power BI_Sql_Powerbi - Fatal编程技术网

将SQL转换为Power BI

将SQL转换为Power BI,sql,powerbi,Sql,Powerbi,我是Power BI的新手,因此请原谅我:D 事实上,我有两个表叫做Report和mail。在Report表中,我有一列Racine,在Mails表中,我有一列Body,它可能包含Racine 我想将此sql转换为Power BI select Report.Racine, Mails.Body from Report, Mails where Mails.Body LIKE '%' + Report.UserId + '%'; 例如: 表格报告 Racine 1234 5678 9012

我是Power BI的新手,因此请原谅我:D

事实上,我有两个表叫做Report和mail。在Report表中,我有一列Racine,在Mails表中,我有一列Body,它可能包含Racine

我想将此sql转换为Power BI

select Report.Racine, Mails.Body 
from Report, Mails
where Mails.Body LIKE '%' + Report.UserId + '%'; 
例如:

表格报告

Racine
1234
5678
9012
0987
表格邮件

Body
'abc 1234 AZER'
'PO5678 tgcv'
'YF1234GHQ'
结果应该是

Racine             Body
1234               'abc 1234 AZER'
1234               'YF1234GHQ'
5678               'PO5678 tgcv'
9012               *null*
0987               *null*
可能吗

Thx提前。

有两种选择

  • 您可以根据下图导入精确的查询

  • 在PowerBI中导入两个源表。您需要在PowerBI中的PowerQuery(M)中编写一个查询,以从正文中提取数字Racine。然后,您可以将数据合并到另一个M查询中或加入到您的模型中。如果使用后者,则需要在视觉效果上“显示没有数据的项目”,以便显示空白/空

  • 您可以找到需要编写的M代码的示例。为方便起见,贴在下面

    #"Added Custom" = Table.AddColumn(#"Promoted Headers", "Custom", each Text.Combine(List.RemoveNulls(List.Transform(Text.ToList([Name]),each if Value.Is(Value.FromText(_), type number) then _ else null))))
     
    

    如果这些表来自不同的数据源,则可以通过DAX计算新表(数据->新表):


    太好了,它工作得非常好。非常感谢。您好,谢谢您的两个答案。但是这两个表来自excel,不能使用SqlServer的GetData,我不知道M代码。msta42a使用DAX的答案与我预期的一样有效。干杯
    VAR __tmp1 =
        FILTER (
            SUMMARIZECOLUMNS (
                Report[Racine],
                Mails[Body],
                "condition",
                    CONTAINSSTRING (
                        SELECTEDVALUE ( Mails[Body] ),
                        SELECTEDVALUE ( Report[Racine] )
                    )
            ),
            [condition]
        )
    VAR __tmp2 =
        ADDCOLUMNS (
            CALCULATETABLE (
                Report,
                NOT ( Report[Racine] IN ( CALCULATETABLE ( Report, __tmp1 ) ) )
            ),
            "Body", BLANK (),
            "condition", FALSE
        )
    RETURN
        UNION ( __tmp1, __tmp2 )