请看下面的例子
type qty total
A 10 10
A 5 15
S 7 8
A 12 20
S 5 15
我想要一个可以找到总数的访问查询,即如果类型为'A',则将其添加到total,如果type为'S'则从total减去。任何人都可以帮助我。
答案 0 :(得分:1)
您可以使用Iif函数反转S类行,例如:
SELECT Sum(IIf([type]="S",-[total],[total])) AS subtotal
FROM table;
或者在查询视图中,您可以通过添加新字段来执行此操作:
subtotal: IIf([type]="S",-[total],[total])
然后激活工具栏中的Totals图标,并选择Sum作为Totals的值。
答案 1 :(得分:0)
这样的事情:
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)。
答案 2 :(得分:0)
SELECT IIF(Type = 'A',total + qty,total - qty) as newTotal from table1