1

我正在尝试根据接受者的代码(在两个相关表中名为 N_PRENEUR)对发票的总价格(表 FACT 中名为 Total_TTC)求和,并将结果存储在表 table_preneur 的 DEBIT_P 列中。这样做我在访问中得到一个语法错误(缺少运算符),似乎无法理解为什么。我尝试了其他帖子,但 usggestions 给我返回了同样的错误。

    UPDATE P 
SET DEBIT_P = t.somePrice
FROM table_preneur AS P INNER JOIN
 (
  SELECT
   N_PRENEUR,
    SUM(Total_TTC) somePrice
  FROM
     FACT
  GROUP BY N_PRENEUR
  ) t
ON t.N_PRENEUR = p.N_PRENEUR

提前谢谢

4

3 回答 3

2
    with cte as
    (select t.somePrice
    from table_preneur as P
    inner join (select SUM(Total_TTC) as somePrice
      from FACT
      group by N_PRENEUR) t  
    on t.N_PRENEUR = p.N_PRENEUR)

    update P 
    set DEBIT_P = cte.somePrice
    -- DO YOU NEED A WHERE CLAUSE?

    --or maybe

    update table_preneur
set DEBIT_P = (select t.somePrice
from table_preneur as P
inner join (select SUM(Total_TTC) as somePrice
  from FACT
  group by N_PRENEUR) t  
on t.N_PRENEUR = p.N_PRENEUR)
于 2013-06-26T14:34:42.737 回答
1

您在as列别名之前缺少关键字somePrice

UPDATE P 
SET DEBIT_P = t.somePrice
FROM table_preneur AS P INNER JOIN
 (
  SELECT
   N_PRENEUR,
    SUM(Total_TTC) as somePrice
  FROM
     FACT
  GROUP BY N_PRENEUR
  ) t
ON t.N_PRENEUR = p.N_PRENEUR
于 2013-06-26T14:26:39.600 回答
1

只是为了澄清上述内容,在 MS Access SQL 中,您需要在声明表别名时使用 AS - 这在您的 SQL (SUM(Total_TTC) AS somePrice) 中缺失

于 2013-06-26T14:31:21.843 回答