簡體   English   中英

子查詢不適用於Access鏈接表

[英]Subquery not working with Access linked tables

我正在嘗試構建一個從包含財務信息的數據庫中提取信息的工具,但是我遇到了這個問題。 以下查詢將為我提供一些我需要的數據,但是一旦在子查詢中添加,我就會收到錯誤消息

“ ODBC –調用失敗”。

如果我用靜態的"WHERE TRAN_NUMBER IN (0,1,2,3..)"替換子查詢,它將返回期望值。 子查詢本身運行時返回期望值。

我正在使用MS Access和C#和OleDB庫來執行此操作

任何想法我做錯了什么?

SELECT NOMINAL_CODE, DETAILS, AMOUNT, TYPE
FROM AUDIT_JOURNAL
WHERE TRAN_NUMBER IN
   (SELECT AUDIT_TRAIL_ID
    FROM PROJECT_TRAN 
    WHERE AUDIT_TRAIL_ID > 0);

類型“ System.Data.OleDb.OleDbException”的第一次機會異常發生在System.Data.dll中

附加信息:ODBC--調用失敗

編輯:當通過ODBC鏈接到另一個數據庫時,子查詢看起來不起作用(原始數據庫是SageLine50數據庫)。 我已經靜態導入了表,它似乎可以工作。 有誰知道我如何在不靜態導入表的情況下完成這項工作?

代替使用IN子句和子查詢,您可以嘗試JOIN

SELECT 
    aj.NOMINAL_CODE, 
    aj.DETAILS, 
    aj.AMOUNT, 
    aj.TYPE
FROM 
    AUDIT_JOURNAL AS aj
    INNER JOIN
    PROJECT_TRAN AS pt
        ON aj.TRAN_NUMBER = pt.AUDIT_TRAIL_ID
WHERE pt.AUDIT_TRAIL_ID > 0

回復:您對問題的編輯中的評論

通過ODBC鏈接到另一個數據庫時,子查詢看起來不起作用(原始數據庫是SageLine50數據庫)。

對於所有 ODBC鏈接表肯定不是這樣。 我在SQL Server 2008 R2中創建了表[AUDIT_JOURNAL]和[PROJECT_TRAN],在Access 2010中創建了鏈接表,並且原始查詢在Access中工作正常。 (我的也是。)您的問題幾乎可以肯定是由SageLine50 ODBC驅動程序缺陷引起的。

暫無
暫無

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

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