2015-09-05 121 views
0

我正嘗試在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 
       ) 
      ) 
      ) 
     ) 
    ) 
) 
); 

回答

0

在Access中,使用查詢是不可能的,既不打開基於查詢的記錄集。

您可以將日期讀入數組中,然後在代碼中進行操作。或者使用另一種編程語言(如C#)並打開數據集,然後將其用作您嘗試執行的任何操作的源代碼。

1

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

考慮使用臨時表,您可以使用Make-Table query的查詢結果生成臨時表。

SELECT * INTO tmpTable FROM qry 

然後,例行地運行生成表(覆蓋以前的版本)並更新對臨時表的查詢。最後,基地更早地查詢新的臨時表或僅使用臨時表。總而言之,您保留原創並擁有合適的桌子。

+0

太棒了。再次感謝! – Chris2015