Postgresql中两个表之间的差异查询?

时间:2015-11-30 08:51:18

标签: sql postgresql

在Postgresql中,我有items表,如下所示:

id  qty 
1    20
2    45
3    10

它包含每种产品的数量。 我正在进行计数操作。对于我计算的每个项目,我将数据复制到log_count表。物品表从未改变。

我想写一个查询,它会告诉我表之间的区别。基本上还剩下多少钱。当数量为0时,该行消失。

应该是这样的:

开始

items:             log_count:              QUERY SHOW:
    1    20                                1        20
    2    45                                2        45
    3    10                                3        10

后计算:id=1 qty=3

items:             log_count:              QUERY SHOW:
    1    20         1      3               1        17
    2    45                                2        45
    3    10                                3        10

之后,在计算:id=2 qty=45

之后
items:             log_count:              QUERY SHOW:
    1    20         1      3               1        17
    2    45         2      45              3        10
    3    10                                * row of id 2 is gone as its qty=0

之后,在计算:id=1 qty=2

之后
items:             log_count:              QUERY SHOW:
    1    20         1      5               1        15
    2    45         2      45              3        10
    3    10                               

最后阶段......

items:             log_count:              QUERY SHOW:
    1    20         1      20             
    2    45         2      45             
    3    10         3      10                      

如何撰写此查询?

1 个答案:

答案 0 :(得分:1)

看起来像是一个简单的加入我:

select it.id, it.qty - lc.qty as difference
from items it
  left join log_count lc on it.id = lc.id 
where it.qty - lc.qty > 0;