2013-11-10 80 views
1

晚上好。MS-Access SQL中的子查詢語法錯誤

我試圖創建一個查詢,平均每個產品購買VS.購買數量以獲得平均購買金額。

這包括三個表:

  1. 客戶
  2. 發票
  3. LINE

我寫了這個:

SELECT CUSTOMER.CUS_CODE, CUS_FNAME+" "+CUS_LNAME AS Name, CUSTOMER.CUS_BALANCE,  
Sum([LINE]![LINE_NUMBER]*[LINE]![LINE_PRICE]) AS Total_purchases, 
Count(INVOICE.INV_NUMBER) AS Number_of_purchases, 

(
SELECT [Sum([LINE]![LINE_NUMBER]*[LINE]![LINE_PRICE])/ 
[Count(INVOICE.INV_NUMBER)] 
FROM INVOICE, LINE 
WHERE INVOICE.INV_NUMBER = LINE.INV_NUMBER 
) AS Average_purchase_amount 

FROM CUSTOMER, INVOICE, LINE 
WHERE CUSTOMER.CUS_CODE = INVOICE.CUS_CODE AND INVOICE.INV_NUMBER = LINE.INV_NUMBER 
GROUP BY CUSTOMER.CUS_CODE, CUS_FNAME+" "+CUS_LNAME, CUSTOMER.CUS_BALANCE; 

我在第二個SELECT出現錯誤。我不知道爲什麼。我覺得我錯過了很簡單的事情。

實際的錯誤讀取:!

  • 「語法錯誤在查詢表達式「( SELECT [總和([LINE] [LINE_NUMBER] * [LINE] [LINE_PRICE])/ [計數( INVOICE.INV_NUMBER)。'」

從錯誤我認爲在我的表情某處的東西不排隊,但我想我沒有足夠的瞭解是怎麼回事,知道它到底是什麼。

+1

請不要通過編輯你的問題來改變主題。如果您的原始問題是關於語法錯誤,您可以自己回答或接受文森特給出的答案。如果您有其他問題,請提出一個新問題。請記住,這是一個「問題和答案」網站,而不是討論板。 – BellevueBob

+0

@BellevueBob對不起,我會刪除的東西。 –

+1

更好,謝謝!這會保持您的原始問題的相關性,以防將來再次訪問該問題。 – BellevueBob

回答

1

有不平衡的括號。無論是每一個的意思是在方括號或整個公式:

SELECT [Sum([LINE]![LINE_NUMBER]*[LINE]![LINE_PRICE])]/[Count(INVOICE.INV_NUMBER)] 

- 或 -

SELECT [Sum([LINE]![LINE_NUMBER]*[LINE]![LINE_PRICE])/Count(INVOICE.INV_NUMBER)] 

試着加入你的表。就像這樣:

FROM INVOICE 
    INNER JOIN CUSTOMER ON CUSTOMER.CUS_CODE = INVOICE.CUS_CODE 
    INNER JOIN LINE ON LINE.INV_NUMBER =INVOICE.INV_NUMBER 
+0

就我個人而言,我只是括號括起來,它的工作,但引入了一個新的問題,它具有相同的價值,爲每個客戶... –

+0

是的括號是可選的,但如果你使用它們,你需要保持平衡。至於相同的值,它是你的FROM語句。你需要加入表格。 –