更新查询更新表而不查询结果

更新查询更新表而不查询结果

问题描述:

我正尝试在SQL(Access)中使用UPDATE查询。我想要做的是更新查询结果而不影响底层表。因此,保持原始表格不变,但更新我的查询结果。当我尝试下面的代码时,我更新了我的查询,同时也更新了表。有任何想法吗?更新查询更新表而不查询结果

UPDATE [HRBI Query] 
SET [HRBI Query].PaySegmentMultiplier = IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'Above top segment', 0, 
    IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'Below segment 1', 1.35, 
     IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'S1', 1.25, 
     IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'S2', 1.15, 
      IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'S3', .90, 
       IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'S4', .60, 
       IIF([HRBI Query].[PayGroupCountryDesc] = 'Country' AND [HRBI Query].PaySegment = 'S5', .40, 
        PaySegmentMultiplier.PaySegmentMultiplier 
       ) 
      ) 
      ) 
     ) 
    ) 
) 
); 

在Access中,使用查询是不可能的,既不打开基于查询的记录集。

您可以将日期读入数组中,然后在代码中进行操作。或者使用另一种编程语言(如C#)并打开数据集,然后将其用作您尝试执行的任何操作的源代码。

非常有趣,你用我的早期answer

考虑使用临时表,您可以使用Make-Table query的查询结果生成临时表。

SELECT * INTO tmpTable FROM qry 

然后,例行地运行生成表(覆盖以前的版本)并更新对临时表的查询。最后,基地更早地查询新的临时表或仅使用临时表。总而言之,您保留原创并拥有合适的桌子。

+0

太棒了。再次感谢! – Chris2015