我正在尝试在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 :(得分:1)
非常有趣的是你使用了我之前的answer!
考虑使用临时表,您可以使用Make-Table query从查询结果生成临时表。
SELECT * INTO tmpTable FROM qry
然后,定期运行make-table(覆盖以前的版本)并更新临时表上的查询。最后,基于早期查询新的临时表或只使用临时表。总而言之,你保留了原创并且有一张合适的桌子。
答案 1 :(得分:0)
在Access中,使用查询无法实现,也无法根据查询打开记录集。
您可以将日期读入数组,并在代码中进行操作。或者使用其他编程语言(如C#)并打开数据集,然后将其用作您尝试执行的任何操作的源。