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

时间:2015-09-05 08:30:57

标签: sql ms-access

我正在尝试在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
                 )
              )
           )
        )
     )
  )
);

2 个答案:

答案 0 :(得分:1)

非常有趣的是你使用了我之前的answer

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

SELECT * INTO tmpTable FROM qry

然后,定期运行make-table(覆盖以前的版本)并更新临时表上的查询。最后,基于早期查询新的临时表或只使用临时表。总而言之,你保留了原创并且有一张合适的桌子。

答案 1 :(得分:0)

在Access中,使用查询无法实现,也无法根据查询打开记录集。

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