更新查询中的SQL代码

时间:2012-09-13 10:13:45

标签: sql database vba ms-access

我再次陷入同一个数据库。这次我创建了一个更新查询,当按下按钮时,该查询删除表中每个部分的1个。但是当一个部分已经为0时,它会变为-1。我怎样才能阻止这种情况发生?

我用SQL来实现这个目标,

UPDATE [ASM-00065 WIP] 
SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1;

3 个答案:

答案 0 :(得分:4)

我可能错误地理解了您的问题,但您是否要更新该表中该列的所有行,并从中减去1?在这种情况下,您可以使用:

UPDATE [ASM-00065 WIP] 
SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 
WHERE [ASM-00065 WIP].[Current Stock] > 0

答案 1 :(得分:1)

MS-Access是否可以使用IIF()

UPDATE [ASM-00065 WIP] 
SET [Current Stock] 
   = IIF([Current Stock]>0, [Current Stock]-1, [Current Stock]);

答案 2 :(得分:0)

您可以添加条件来过滤要更新的行:

UPDATE [ASM-00065 WIP] SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 WHERE [ASM-00065 WIP]![Current Stock] > 0;