繁体   English   中英

MS-Access SQL语法错误中的子查询

[英]Subquery in MS-Access SQL Syntax error

晚上好。

我正在尝试创建一个查询,对每个产品购买量与平均值进行比较。 购买次数以获得平均购买金额。

这包括三个表:

  1. 顾客
  2. 发票
  3. 线

我这样写:

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 [Sum([LINE]![LINE_NUMBER] * [LINE]![LINE_PRICE])/ [Count(INVOICE.INV_NUMBER)]的语法错误。'”

根据错误,我认为表达式中的某处没有排列整齐,但是我想我对所发生的事情还不了解,确切地知道它到底是什么。

有不平衡的括号。 每个括号都应放在方括号中或放在整个方程中:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM