让我们说我们有2个表:A和B。
在表A中,我们为客户付款。 numClient列标识的每个客户每年12次付款,付款列标识的付款金额每年。
表B中有每个客户每年的付款总和,因此每个客户每年仍仅由numClient列标识的行和由yearPayment列标识的付款。
我想要一个查询,该查询列出表B的yearPayment与表A中的付款总额不同的所有客户(显示numClient)。
由于这些表涵盖不同的年份,我只想查询2018年。在表A中,付款日期为PaymentDate Column。在表B中,付款年份是YearPayment列。
答案 0 :(得分:3)
整个故事听起来很不对劲。不是您的话,而是模型-您为什么要使用表B?将付款保留在原处(表A)。如果您必须对它们进行求和,请这样做。或创建一个视图。但是,将它们分别放在两个表中只是一个问题(您现在遇到的一个-找到区别)。
无论如何:
select a.id_customer, sum(a.payment), b.sum_payment
from a join b on a.id_customer = b.id_customer
where extract(year from a.date_column) = 2018
and extract(year from b.date_column) = 2018
group by a.id_customer, b.sum_payment
having b.sum_payment <> sum(a.payment)