簡體   English   中英

為什么我收到 Microsoft SQL:Power BI 上的語法錯誤?

[英]Why I am getting Microsoft SQL: Incorrect syntax error on Power BI?

我正在嘗試使用 CTE 獲取一些數據,但它給了我一個錯誤,我必須使用分號。 我想我通過放置來解決這個問題; 在 WITH 前面,但現在我得到了Microsoft SQL: Incorrect syntax near ';'. Incorrect syntax near ')'. Microsoft SQL: Incorrect syntax near ';'. Incorrect syntax near ')'.

誰能告訴我出了什么問題? 過去很簡單,只需將查詢從 MS SQL 復制到 Power BI。 我的查詢在 MS SQL 中運行良好。

;WITH unit AS (
   SELECT
         tm.create_date 
       , tm.timeslip_date
       , cases.case_sk
       , cases.case_number
       , cases.closed_ind
       , cases.atty2_sk
       , vc.atty2_name    AS [Business Leader]
       , em.smtp_reply_to AS [Business Leader Email]
       , cases.atty1_sk
       , vc.atty1_name    AS [Assign Attorney]
       , tm.detail_notes
   FROM dbo.cases
   LEFT JOIN dbo.vcases vc ON cases.case_sk = vc.case_sk
   LEFT JOIN dbo.employee em ON cases.atty2_sk = em.employee_sk    
   LEFT JOIN dbo.timeslips tm ON cases.case_sk = tm.case_sk
   WHERE cases.closed_ind = 'O'
   AND NOT EXISTS(SELECT * FROM dbo.timeslips tsm WHERE tsm.case_sk = cases.case_sk AND tsm.timeslip_date > DATEADD(day, -90, GETDATE()) )
), agg AS (
   SELECT
         MIN(u.create_date)   AS [Created Date]
       , MAX(u.timeslip_date) AS [Last Bill Date]
       , u.case_sk
       , u.case_number
       , u.closed_ind
       , u.atty2_sk
       , u.[Business Leader]
       , u.[Business Leader Email]
       , u.atty1_sk
       , u.[Assign Attorney]
   FROM unit u
   GROUP BY 
         u.case_sk
       , u.case_number
       , u.closed_ind
       , u.atty2_sk
       , u.[Business Leader]
       , u.[Business Leader Email]
       , u.atty1_sk
       , u.[Assign Attorney]
)
SELECT agg.*, unit.detail_notes
FROM agg
INNER JOIN unit
   ON  agg.[Last Bill Date] = unit.[timeslip_date]
        AND agg.case_sk = unit.case_sk
        AND agg.case_number = unit.case_number
        AND agg.closed_ind = unit.closed_ind
        AND agg.atty2_sk = unit.atty2_sk
        AND agg.atty1_sk = unit.atty1_sk

謝謝

當你使用自定義查詢作為 DirectQuery 源時,你必須提供一個查詢,PowerBI 可以在運行時組成額外的條件和聯接。

如果您使用這樣的查詢創建 DirectQuery 源

with q as (select * from sys.objects) select * from q

PowerBI 將編寫查詢,如

select * from (
    with q as (select * from sys.objects) select * from q
) SourceQuery where 1 = 2

你得到的錯誤與你是否有語句終止符無關。 ; 在查詢中是不允許的,但幽冥是with CTE 很棒,但它們有一個缺陷:它們不是“可組合的”。

您可以通過將查詢安裝為 SQL Server 中的視圖或將 CTE 子查詢轉換為嵌套子查詢來解決此問題,但該查詢實在太復雜而無法在 DirectQuery 模型中使用。 因此,您確實需要將結果加載到表中以使用 DirectQuery,或者切換到導入並僅在刷新時運行查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM