0

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

我使用 SQL 来实现这一点,

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

3 回答 3

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
于 2012-09-13T10:16:44.207 回答
1

您可以使用 MS-AccessIIF()

UPDATE [ASM-00065 WIP] 
SET [Current Stock] 
   = IIF([Current Stock]>0, [Current Stock]-1, [Current Stock]);
于 2012-09-13T10:18:34.673 回答
0

您可以添加一个条件来过滤您将更新的行:

UPDATE [ASM-00065 WIP] SET [ASM-00065 WIP].[Current Stock] = [ASM-00065 WIP]![Current Stock]-1 WHERE [ASM-00065 WIP]![Current Stock] > 0;
于 2012-09-13T10:16:52.580 回答