Ms access 注册访问查询

Ms access 注册访问查询,ms-access,Ms Access,看看下面的例子 type qty total A 10 10 A 5 15 S 7 8 A 12 20 S 5 15 我需要一个访问查询,可以找到总计,即如果类型为“A”,则将其添加到总计,如果类型为“S”,则从总计中减去。有人可以帮助我吗。您可以使用Iif函数反转类型S的行,例如: SELECT Sum(IIf([type]=

看看下面的例子

   type      qty   total
   A         10    10
   A         5     15
   S         7      8
   A         12    20
   S         5     15

我需要一个访问查询,可以找到总计,即如果类型为“A”,则将其添加到总计,如果类型为“S”,则从总计中减去。有人可以帮助我吗。

您可以使用Iif函数反转类型S的行,例如:

SELECT Sum(IIf([type]="S",-[total],[total])) AS subtotal
FROM table;
或者,在“查询”视图中,可以通过添加新字段来执行此操作,如下所示:

subtotal: IIf([type]="S",-[total],[total])
然后激活工具栏中的“总计”图标,并选择“总和”作为总计值

类似这样:

SELECT T1.type, T1.qty, T1.total, T1.total + T1.qty AS subtotal
  FROM MyTable AS T1
 WHERE T1.type = 'A'
UNION ALL
SELECT T1.type, T1.qty, T1.total, T1.total - T1.qty AS subtotal
  FROM MyTable AS T1
 WHERE T1.type = 'S';
或者可能是:

SELECT T1.type, T1.qty, T1.total, 
       T1.total + SWITCH(
                         T1.type = 'A', T1.qty, 
                         T1.type = 'S', 0 - T1.qty,
                         TRUE, NULL
                        ) AS subtotal
  FROM MyTable AS T1;

根据您觉得更容易阅读的内容,您希望如何处理既不是“A”也不是“S”的行,以及哪一行的性能最好(依此顺序,IMO)。

不确定您是否正确解释了“总计”,即它们是指其名为“总计”的列,还是要合计(总和)?我真的不知道。
SELECT IIF(Type = 'A',total + qty,total - qty) as newTotal from table1