首页 > 解决方案 > 在访问中的列之间拆分值的函数

问题描述

我有下表:

当前的

而且我需要根据status列的值将value列拆分成两列,还要加上两者的区别。像这样:

例子

我可以通过使用两个单独的查询来拆分它,但是当我将它们合并在一起时,我会得到重复的值,即使我使用 Sum 并按客户分组。

标签: sqlms-access

解决方案


您可以起诉条件聚合:

select customer, 
       sum(iif(status = 'debt', value, 0)) as debt,
       sum(iif(status = 'pay', value, 0)) as pay
       (sum(iif(status = 'debt', value, 0)) -
        sum(iif(status = 'pay', value, 0))
       ) as diff
from t
group by customer;

推荐阅读