问题描述
我在访问方面并不陌生,但甚至不是专业人士。对于这个问题,我真的需要帮助。
键: 分类帐-主表; 客户-客户表。
我的目标: 我正在将访问用于会计目的,我想在每日会计表中显示客户余额。
我做了什么
首先,我从Ledger和Customer中进行查询(DailySheetQuery),该查询给出了每个客户的余额总计
第二,我再次将Ledger和DailySheetQuery带到一个新查询(DailySheet)。
第三,我将分类帐中的客户外键链接到DailySheetQuery ID(最初是客户ID),以将DailySheetQuery中的余额链接到分类帐中的客户
现在是问题所在- DailySheet(查询)未显示任何错误- 但是当我将其报告时,会显示此错误“指定的字段'Ledger.ID'可以引用您的sql语句的FROM子句中列出的多个表。”
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 #?]));