指定的字段“ Ledger.ID”可能引用SQL语句的FROM子句中列出的多个表

问题描述

我在访问方面并不陌生,但甚至不是专业人士。对于这个问题,我真的需要帮助。

键: 分类帐-主表; 客户-客户表。

我的目标: 我正在将访问用于会计目的,我想在每日会计表中显示客户余额。

我做了什么

首先,我从Ledger和Customer中进行查询(DailySheetQuery),该查询给出了每个客户的余额总计

第二,我再次将Ledger和DailySheetQuery带到一个查询(DailySheet)。

第三,我将分类帐中的客户外键链接到DailySheetQuery ID(最初是客户ID),以将DailySheetQuery中的余额链接分类帐中的客户

现在是问题所在- DailySheet(查询)未显示任何错误- 但是当我将其报告时,会显示错误“指定的字段'Ledger.ID'可以引用您的sql语句的FROM子句中列出的多个表。”

我的代码查询1:DailySheetQuery

SELECT [Customer Database].ID,Ledger.Customer,Sum([Recable]-[Received]) AS Balance
FROM [Customer Database] RIGHT JOIN Ledger ON [Customer Database].ID = Ledger.Customer
GROUP BY [Customer Database].ID,Ledger.Customer;

查询2:DailySheet

SELECT Ledger.ID,Ledger.[Transaction Type],Ledger.[Invoice Date],Ledger.Passenger,Ledger.Employee,Ledger.Service,Ledger.Recable,Ledger.Received,Ledger.Payable,Ledger.Paid,Ledger.[Mode Of Payment],DailySheetQuery.ID,DailySheetQuery.Balance,IIf([Ledger].[Mode Of Payment]=2,[Ledger].[Received]-[Ledger].[Paid],0) AS CashInHand,[Ledger].[Recable]-[Ledger].[Payable] AS Profit,[Ledger].[Received]-[Ledger].[Paid] AS [Money]
FROM Ledger LEFT JOIN DailySheetQuery ON Ledger.Customer = DailySheetQuery.ID
WHERE (((Ledger.[Invoice Date])=Date()) AND ((Ledger.Employee)=[Employee #?]));

请仔细检查我的问题并发送帮助。


P.S。我是论坛问答的新手,如果有什么遗漏,请告诉我。

解决方法

您可以在查询中使用 alias 分类帐:

SELECT 
    L.ID,L.[Transaction Type],..,[L].[Received]-[L].[Paid] AS [Money]
FROM 
    Ledger AS L
LEFT JOIN 
    DailySheetQuery ON L.Customer = DailySheetQuery.ID
WHERE
    (((L.[Invoice Date])=Date()) AND ((L.Employee)=[Employee #?]));