簡體   English   中英

不支持JOIN表達式,還是左聯接?

[英]JOIN Expression not supported, or is the left join?

當前正在調試一段代碼以適合Access SQL查詢。

代碼如下:

select tk, tk2, count(*), count(a2.tk) / count(*) as ratio
from ((select distinct a.TK, a2.TK as tk2
       from access3 as a join
            access3 as a2 
            on (a.DocumentNo = a2.DocumentNo)
       where a.TK <> a2.TK
      ) tt left join
      access3 as a
      on (a.tk = tt.tk)
     ) left join
     access3 as a2
     on (a2.tk = tt.tk2 and a2.DocumentNo = a.DocumentNo)
group by tk, tk2;

我查了一下,發現了這個帖子

Access中的“不支持聯接表達式”

因此,我嘗試放入括號。 當我跑步時,我需要排隊

(a2.tk = tt.tk2 and a2.DocumentNo = a.DocumentNo) 

並突出顯示它。 因此,這條線有些不受歡迎。

我想我了解如何重寫聯接代碼,但是如何重寫左聯接代碼以滿足Access的挑剔要求?

或者,是否有更好的程序可以使用,我可以連接到Access並復制並粘貼代碼? 我嘗試了免費版本的DBeaver,但我認為它處理起來太多了,因為它帶回了200行查詢(這是錯誤的),該查詢花費了5分鍾的加載時間,當我向下滾動時,它會重新查詢並提取更多的數據,也錯了。

在DB Fiddle中嘗試了一個樣本大小,它可以完美地工作,因此代碼可以工作,只是DBeaver由於某種原因沒有正確執行它。

更改joininner join - MS Access不能解釋join自動為內連接。

您可能還需要在字段tktk2前面加上表限定符,因為在您引用的表中似乎有多個具有這些名稱的字段:

例如, select tt.tk, tt.tk2, count(*), count(a2.tk) / count(*) as ratio

暫無
暫無

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

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