如何减去从两个表生成的值?

问题描述

price
2.22
10.32
0.4
22.95
8.56

price
1.57
3.0
0.35
9.52
5.56

我有两个包含产品销售价格的表格。一张表包含 10 月的数据,另一张表包含 11 月的数据。我正在寻找一个查询生成从 10 月到 11 月产生的收入变化。

使用的查询

select sum(a.price) - sum(b.price) as REVENUE_DIFF
from ((select sum(price) nov_data_part  where event_type='purchase') a
      UNION ALL (select sum(price) from oct_data_part  where event_type='purchase') b);

这是在抛出错误

解决方法

您可以使用cross join

select n.nov_sum  - o.oct_sum as REVENUE_DIFF
from (select sum(n.price) as nov_sum
      from nov_data_part n
      where event_type = 'purchase'
     ) n cross join
     (select sum(o.price) as oct_sum
      from oct_data_part n
      where event_type = 'purchase'
     ) o;

请注意:如果您根据月份将行拆分到不同的表中,那么您的数据模型就会出现真正的问题。