Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 嵌套查询microsoft access_Ms Access_Nested Queries - Fatal编程技术网

Ms access 嵌套查询microsoft access

Ms access 嵌套查询microsoft access,ms-access,nested-queries,Ms Access,Nested Queries,我有一张交易记录表。该表包含多个供应商,多笔交易,多笔交易金额。如果某个供应商的交易额是该供应商平均交易额的两倍以上,我需要更新该表。到目前为止,我发现以下代码是错误的: Update tblTransaction SET VariabilityIndicator = 1 WHERE transactionNumber IN (Select transactionNumber From tblTransaction GROUP BY VendorName HAVING transactionAm

我有一张交易记录表。该表包含多个供应商,多笔交易,多笔交易金额。如果某个供应商的交易额是该供应商平均交易额的两倍以上,我需要更新该表。到目前为止,我发现以下代码是错误的:

Update tblTransaction
SET VariabilityIndicator = 1
WHERE transactionNumber IN
(Select transactionNumber
From tblTransaction
GROUP BY VendorName
HAVING transactionAmount >= AVG(transactionAmount*2))
上面的代码显然是错误的。我提出了一个可以嵌套的语句:

SELECT AVG(transactionAmount) VendorName
FROM tblTransaction
GROUP BY VendorName
这将返回所有VendorNames及其平均交易金额。如何嵌套它,以便将TransactionMount与供应商名称匹配的平均值进行比较

Update tblTransaction
SET VariabilityIndicator = 1
WHERE transactionNumber IN
(
    Select T.TransactionNumber
    from tblTransaction as T
    Where T.transactonAmount > 2 * (
      Select AVG(transactionAmount)
      From tblTransaction as A
      Where A.VendorName = T.VendorName
    )
)
您可能需要检查您的业务逻辑,以从平均计算中排除正在评估的TransactionMount。此外,您可能不希望在供应商名称上进行匹配,而是在某种ID号/主键值上进行匹配