微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Access 2016查询同表同列减法

如何解决Access 2016查询同表同列减法

我有一个包含值的表,我需要计算一个字段,其中两行值相减,我已经编写了以下查询,但它不起作用并且通过了 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"));

感谢您的帮助

解决方法

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

另外你必须注意,你的子选择总是只返回 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");

我在这个 shouölb 中添加了一个版本,提示您如何进行此类查询

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");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。