访问查询无法识别子查询中的值

Access Query not recognizing values from sub queries

以下查询在 2 个单独的表的子查询中完成了聚合计算,并将这些值传递给主查询。

(注意上面的消息和下面发布的代码已经根据 Andre 的评论进行了更新。由于错误,原始代码没有 运行。)

SELECT
     totSales.[Month]  & " /" AS [Month], 
     totSales.[Year] AS [Year],
     SALES_REP.rep_name AS [Sales Person],
     Sum(totSales.[Total Sales]) AS [Total Sales], 
     Sum(totSales.[Gross Commission]) AS [Gross Commission],
     Sum(Nz(totReturns.[Sales Returns],0)) AS [Sales Returns],
     Sum(Nz(totReturns.[Lost Commission],0)) AS [Lost Commission],
     Round([Gross Commission]-[Lost Commission]) AS [Net Commission]

    FROM SALES_REP

     INNER JOIN
     (

    (SELECT

        Format(SALES_RECEIPT.sale_date,'yyyy') AS [Year], 
        Format(SALES_RECEIPT.sale_date,'mm') AS [Month], 
        Sales_receipt.inventory_id, SALES_RECEIPT.rep_id, 
        ( SALES_RECEIPT.selling_price *  SALES_RECEIPT.quantity) AS [Total Sales], 
        ((Nz(SALES_RECEIPT.selling_price, 0) * Nz( SALES_RECEIPT.quantity, 0)) * (Nz(SALES_RECEIPT.commission_percent, 100) * 0.001)) AS [Gross Commission]

    FROM SALES_RECEIPT
    WHERE SALES_RECEIPT.sale_date Between #1/1/2000# And #12/31/2050#) AS totSales

    LEFT JOIN

    (SELECT
        RETURNS.rep_id, returns.inventory_id, (Nz(RETURNS.selling_price)) * (Nz(RETURNS.quantity)) AS [Sales Returns],
        ((Nz(RETURNS.selling_price, 0) * Nz(RETURNS.quantity, 0)) * (Nz(RETURNS.commission_percent, 100) * 0.001)) AS [Lost Commission]

    FROM RETURNS
    WHERE RETURNS.return_date Between #1/1/2000# And #12/31/2050#)  AS totReturns
    ON totSales.inventory_id = totReturns.inventory_id)

    ON SALES_REP.rep_id = totSales.REP_ID

    GROUP BY
    totSales.[Year]
    , totSales.[Month]
    , SALES_REP.rep_name
    ;

第二次尝试,基于您的原始查询 - 您遇到的所有错误都可以解释:

  • totSales.Year-Month :在 SELECT 和 GROUP BY 子句中都必须将其放在方括号中:totSales.[Year-Month].
    否则它被解释为 [totSales.Year] minus [Month].

  • SELECT SUM(totReturns.[Return Sales]) 但在 totReturns 中你有 AS [Returns Sales](注意 Returns 中额外的 "s")。

  • TotCommissions, TotLostCommissions:这两个字段在 FROM 子句的任何地方都没有定义。