오전 '가장 한 레코드에서이 하위 쿼리에 의해 반환 될 수있다'는 3 개 테이블을 연결하려고하지만 오류를 얻고있다 At most one record can be returned by this subquery
MS 액세스 오류 :
내 코드
SELECT InvoiceNumber,
Terms(SELECT PaymentTerms
FROM PSD_customerPaymentTerms
WHERE PSD_customerPaymentTerms.PTId = NewInvoice_1.Terms
) AS Terms,
InvoiceDate,
OurQuote,
SalesPerson(SELECT FirstName
FROM Employee
WHERE Employee.EmployeeId = NewInvoice_1.SalesPerson
) AS SalesPerson,
CustomerName(SELECT CustomerName
FROM Customer
WHERE Customer.CustomerId = NewInvoice_1.CustomerName
) AS CustomerName,
OrderNumber,
GrandTotal,
(SELECT SUM(PaymentAmount)
FROM Payment_Receipt
WHERE Payment_Receipt.InvoiceNumber=NewInvoice_1.InvoiceNumber
) AS AmountPaid,
GrandTotal-IIf(AmountPaid Is Null,0,AmountPaid) AS AmountDue,
(SELECT InvoiceStatus
FROM Payment_Receipt
WHERE Payment_Receipt.InvoiceNumber=NewInvoice_1.InvoiceNumber
) AS Status -- Error getting after adding this line.
FROM NewInvoice_1;
Payment_Receipt 표 이드, 송장 포함입니다 아니요, 고객 이름, 총 지불액, 잔액 금액, 지불 날짜, 지불 금액, 지불 유형, 지불 메모, InvoiceStatus.
이것은
방법이 표에서 InvoiceStatus을 얻을 내 테이블 ?? 이 문제를 해결하기
오류 메시지가 분명 해 보입니다. 조인이 작동하려면 해당 하위 쿼리에서 반환 된 단일 레코드가 있어야합니다. 당신이 그것을 스스로 실행하면 어떻게됩니까? 얼마나 많은 행 (레코드)이 반환됩니까? 둘 이상인 경우 WHERE 절을보다 제한적으로 만들어 단일 행을 반환해야합니다. –
그리고이 쿼리로 얻으려는 것이 무엇이든 얻을 수있는 최적의 것 같지 않습니다. – Alexander
모든 행에이 '#Name?'값을 표시하는 행이 하나만 나타납니다. – Srihari