【问题标题】:Access 2016 Query for subtraction in same table same columnAccess 2016 查询同表同列中的减法
【发布时间】:2021-09-21 01:11:38
【问题描述】:

我有一个包含值的表,我需要计算一个字段减去两行值,我已经编写了以下查询,但它不工作并且通过一个 JOIN 错误。

UPDATE TempTbl, ((SELECT TempTbl.Cal_Value FROM TempTbl WHERE (((TempTbl.PHD_TAG)="31FC1064.PV")))-(SELECT TempTbl.Cal_Value FROM TempTbl WHERE (((TempTbl.PHD_TAG)="31FC2064.PV")))) AS A SET TempTbl.Cal_Value = "A"
WHERE (((TempTbl.ASSET_DESC)="OAG net flaring"));

感谢您的帮助

【问题讨论】:

    标签: ms-access join subquery


    【解决方案1】:

    您的连接表必须是表而不是值

    您还必须注意,您的子选择始终只返回 1 个值,否则您会收到 ab 错误

    此版本适用于 MySQL

    UPDATE 
    TempTbl, (SELECT
               (SELECT TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG ="31FC1064.PV" LIMIT 1)
               - (SELECT TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG="31FC2064.PV" LIMIT 1)
               ) AS A 
    SET TempTbl.Cal_Value = "A"
    WHERE (TempTbl.ASSET_DESC="OAG net flaring");
    

    这用于访问

    UPDATE 
    TempTbl, (SELECT
               (SELECT TOP 1 TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG ="31FC1064.PV" )
               - (SELECT TOP 1 TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG="31FC2064.PV" )
               FROM TempTbl) AS A 
    SET TempTbl.Cal_Value = "A"
    WHERE (TempTbl.ASSET_DESC="OAG net flaring");
    

    我添加了一个版本,这应该会提示您如何进行此类查询

    UPDATE 
    TempTbl INNER JOIN (SELECT TempTbl.ASSET_DESC
    ,(SELECT TOP 1 TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG ="31FC1064.PV" )
    -(SELECT TOP 1 TempTbl.Cal_Value FROM TempTbl WHERE TempTbl.PHD_TAG ="31FC1064.PV" )
    FROM TempTbl
    WHERE (((TempTbl.PHD_TAG)="31FC1064.PV"))
    ) AS A ON A.ASSET_DESC = TempTbl.ASSET_DESC
    SET TempTbl.Cal_Value = "A"
    WHERE (TempTbl.ASSET_DESC="OAG net flaring");
    

    【讨论】:

    • 它给出一个错误“查询输入必须包含至少一个表或查询”
    • 访问有点复杂,我改了答案
    • 它工作但显示多个空行,我正在使用访问查询
    • 当您进行交叉连接时,这不是问题的一部分,您将获得多个结果集。但这与问题无关
    • 目的是获取一个计算的数字并更新表中的另一个字段,所有这些值在不同的行中,但在同一表中的同一列 Cal_Value 下,感谢您的帮助,目前它也返回 no值只有空行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多