繁体   English   中英

SQL内部联接计算列

[英]SQL Inner Join for calculated column

我想将销售年至今设置为自动等于帐目代码相等的发票抬头总和。

ALTER TABLE DEBTORS_MASTER  
    ALTER COLUMN Sales_Year_To_Date AS 
          (SELECT SUM (INVOICE_HEADER.Total_Sell_Amount_Excl_VAT)
           FROM DEBTORS_MASTER
           INNER JOIN DEBTORS_MASTER ON INVOICE_HEADER.Account_Code = DEBTORS_MASTER.ACCOUNT_CODE);

我得到这个错误

关键字“ AS”附近的语法不正确

我认为你必须分开做

变更陈述

ALTER TABLE DEBTORS_MASTER
ALTER COLUMN Sales_Year_To_Date INT

更新声明

UPDATE t1
SET Sales_Year_To_Date = Sales_Year_To_Date
FROM DEBTORS_MASTER t1
INNER JOIN (
    SELECT SUM(INVOICE_HEADER.Total_Sell_Amount_Excl_VAT) AS Sales_Year_To_Date
    FROM DEBTORS_MASTER
    INNER JOIN DEBTORS_MASTER ON INVOICE_HEADER.Account_Code = DEBTORS_MASTER.ACCOUNT_CODE
    ) t2 ON t2.ACCOUNT_CODE = t1.ACCOUNT_CODE

您可以使用此代码,

UPDATE DM
SET Sales_Year_To_Date = IH.sumAmount
FROM DEBTORS_MASTER AS DM
INNER JOIN
    (
        SELECT Account_Code, SUM(Total_Sell_Amount_Excl_VAT) sumAmount
        FROM INVOICE_HEADER
        GROUP BY Account_Code
    ) IH
ON IH.Account_Code = DM.Account_Code

暂无
暂无

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

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