Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 减去两列_Sql_Ms Access_Ms Access 2010 - Fatal编程技术网

Sql 减去两列

Sql 减去两列,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,我有以下MS Access表: itemid qty flag 1 2 0 1 1 1 2 5 0 2 4 1 我想写一个查询来获取余额(qty)并按标记进行分组 例如: (sum of qty where flag =0) - (sum of qty where flag =1) 我的最终输出应该是: 1=1 2=1 使用条件聚合: SELECT itemid, NZ(SUM

我有以下MS Access表:

itemid   qty  flag
1         2    0
1         1    1 
2         5    0
2         4    1 
我想写一个查询来获取余额(
qty
)并按
标记进行分组

例如:

(sum of qty where flag =0) - (sum of qty where flag =1)
我的最终输出应该是:

1=1 
2=1

使用条件聚合:

SELECT itemid,
       NZ(SUM(IIF(flag = 0, qty, 0)), 0) - NZ(SUM(IIF(flag = 1, qty, 0)), 0) AS difference
FROM yourTable
GROUP BY itemid

感谢您的帮助,当itemid有标志1和0时,差异会很好地出现。但是如果itemid只有标志0,那么差异会是负值。您希望如何处理差异可能为负值的情况?您想在这种情况下显示零吗?如果差异为负,则应为负。但是如果1-null=1,则将
SUM()
调用包装到
NZ()
,并在给定标志(0或1)没有出现一次的情况下使用零。因此,对于我的错误,我正在运行您的查询更改1和0