我希望有人可以帮助我。我希望我可以在MS Access中进行更新查询,根据另一个字段“Brand Savings”是否等于或者在我有一组美元范围之间更新我称之为“财政年度的重要性”的字段在另一张桌子里。第一个表如下,这是主表:
+----------+------------+---------------+----------------------------+
| Brand | Project ID | Brand Savings | Materiality by Fiscal Year |
+----------+------------+---------------+----------------------------+
| aBS Corp | 121 | $110,000.00 | |
| aBS Corp | 151 | $17,640.67 | |
| aBS Corp | 152 | $5,682.37 | |
| aBS Corp | 154 | $564,669.58 | |
| aBS Corp | 157 | $5,097.00 | |
| aBS Corp | 159 | $33,798.00 | |
| aBS Corp | 190 | $200,000.00 | |
| aBS Corp | 193 | $250,000.00 | |
| aBS Corp | 194 | $366,666.67 | |
| aBS Corp | 197 | $90,799.00 | |
| aBS Corp | 20 | $14,000.00 | |
| aBS Corp | 219 | $2,800.00 | |
| aBS Corp | 222 | $132.58 | |
| aBS Corp | 23 | $2,068.30 | |
| aBS Corp | 233 | $32,908.60 | |
| aBS Corp | 25 | $9,143.18 | |
| aBS Corp | 34 | $11,674.85 | |
| aBS Corp | 35 | $11,615.60 | |
| aBS Corp | 36 | $14,959.28 | |
| aBS Corp | 39 | $35,000.00 | |
| aBS Corp | 40 | $100,000.00 | |
| aBS Corp | 60 | $55,000.00 | |
| aBS Corp | 61 | $250,094.72 | |
| aBS Corp | 64 | $925,000.00 | |
| aBS Corp | 69 | $400,000.00 | |
| aBS Corp | 75 | $14,625.00 | |
+----------+------------+---------------+----------------------------+
第二个表是参考表:
+------------+-------------------+--------------------+----------------+
| FiscalYear | Low Range | High Range | Result |
+------------+-------------------+--------------------+----------------+
| 2016 | (100,000,000.00) | 24,999.00 | 0-24.9K |
| 2016 | 25,000.00 | 49,999.00 | 25-49.9K |
| 2016 | 50,000.00 | 99,999.00 | 50-99.9K |
| 2016 | 100,000.00 | 1,000,000,000.00 | 100K or Higher |
+------------+-------------------+--------------------+----------------+
我希望能够引用第二张表,以便根据“品牌储蓄”中的值是否在“低价范围”和“高价范围”之间更新“按会计年度的重要性”字段领域。然而我无法弄明白,这让我发疯了。相反,我有4个不同的查询将更新“财政年度的重要性”字段(查询中使用的公式示例如下:)
IIf(([品牌优惠]> = 0)和([品牌优惠]< = 24999),“$ 0-24.9K”)
基本上我要问的是,是否有一个公式可以用来引用参考表中的“低范围”和“高范围”字段,以确定主表中的“品牌储蓄”值是否为在这两个金额之间,如果是,请使用参考表中的“结果”字段填充“财政年度的重要性”字段?
抱歉,这有点“罗嗦”,只是不知道如何解释它。
全部谢谢!
答案 0 :(得分:0)
您可以在更新查询中使用DLookUp
来查找适当的值:
DLookUp("Result", "SecondTable", CDbl([Brand Savings]) & " Between [Low Range] And [High Range]")
对于SELECT
个查询,您也可以使用联接,但我怀疑这是否适用于UPDATE
查询。
答案 1 :(得分:0)
假设带有Brand Savings的表名为tblBrandSavings,带有范围的表称为tblRanges。 然后你可以使用这个UPDATE语句:
UPDATE tblBrandSavings, tblRanges
SET [Materiality by Fiscal Year] = tblRanges.Result
WHERE tblBrandSavings.[Brand Savings] BETWEEN tblRanges.[Low Range] AND tblRanges.[High Range];
问题是为什么要运行在多个表中存储相同的日期。 我建议一个简单的SELECT语句:
SELECT tblBrandSavings.Brand, tblBrandSavings.[Project ID], tblBrandSavings.[Brand Savings], (
SELECT tblRanges.Result
FROM tblRanges
WHERE tblBrandSavings.[Brand Savings] BETWEEN tblRanges.[Low Range] AND tblRanges.[High Range]
) AS [Materiality by Fiscal Year]
FROM tblBrandSavings;