更新查询更新表而不查询结果
问题描述:
我正尝试在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
然后,例行地运行生成表(覆盖以前的版本)并更新对临时表的查询。最后,基地更早地查询新的临时表或仅使用临时表。总而言之,您保留原创并拥有合适的桌子。
太棒了。再次感谢! – Chris2015