簡體   English   中英

MS Access幫助運行查詢

[英]MS Access Help to run a query

我有兩個表,如下所示。 在此處輸入圖片說明

我想獲取所有處於活動狀態的會員,並且付款周期=每兩周一次,以及每個會員在特定年份和月份的相應儲蓄記錄。 請注意,某些成員可能沒有給定年份和月份的儲蓄記錄。 我寫了一個查詢,但是它不返回在儲蓄表中沒有儲蓄記錄的成員。

SELECT Member.memberID As [ID],Member.firstName AS [First Name],
       Member.lastName AS [Last Name], Member.paymentPeriod AS [Payment Period],
       Savings.savingId AS [Savings Id], Savings.enteredAmount AS [Amount]
FROM Member
    LEFT JOIN Savings ON Member.memberID = Savings.memberId
WHERE Member.isActive = 'Active' AND Member.paymentPeriod = 'Fortnightly'
      AND Year(Savings.enteredDate)=2019 AND Month(Savings.enteredDate) = 1;

SAVINGS條件從WHERE移到ON以獲得真實的LEFT JOIN結果:

SELECT Member.memberID As [ID],Member.firstName AS [First Name],
       Member.lastName AS [Last Name], Member.paymentPeriod AS [Payment Period],
       Savings.savingId AS [Savings Id], Savings.enteredAmount AS [Amount]
FROM Member
    LEFT JOIN Savings ON Member.memberID = Savings.memberId
      AND Year(Savings.enteredDate)=2019 AND Month(Savings.enteredDate) = 1
WHERE Member.isActive = 'Active' AND Member.paymentPeriod = 'Fortnightly';

(有了WHERE子句中的條件,您將獲得常規的INNER JOIN結果。)

編輯:嘗試避免“ Join expression not support error ”:

SELECT Member.memberID As [ID],Member.firstName AS [First Name],
       Member.lastName AS [Last Name], Member.paymentPeriod AS [Payment Period],
       Savings.savingId AS [Savings Id], Savings.enteredAmount AS [Amount]
FROM Member
    LEFT JOIN Savings ON Member.memberID = Savings.memberId
WHERE Member.isActive = 'Active' AND Member.paymentPeriod = 'Fortnightly'
      AND (Year(Savings.enteredDate)=2019 or Year(Savings.enteredDate) IS NULL)
      AND (Month(Savings.enteredDate) = 1 or Month(Savings.enteredDate) IS NULL);

暫無
暫無

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

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