如何用sql中的条件计算两列数据

时间:2017-11-22 14:32:35

标签: sql postgresql

Date        Quantity Transaction_Type 
11-07-2017   200       Sale
15-07-2017   200       Purchase
20-07-2017   500       Sale
10-08-2017   200       Purchase
10-10-2017   200       Purchase
12-10-2017   200       Sale
12-12-2017   200       Sale
20-12-2017   500       Sale

如何获得以下输出。

Month  Quantity
07      500
10      0
12      700

1 个答案:

答案 0 :(得分:4)

你似乎想要:

select to_char(date, 'YYYY-MM') as yyyymm,
       sum(case transaction_type when 'Purchase' then quantity
                                 when 'Sale' then - quantity
           end)
from t
group by yyyymm
order by yyyymm;

请注意,我在月份列中包含了年份。如果您不想要年份,请将其从to_char()格式中删除。