我上面有这张表。如果我将余额值相加,我将得到23.47。
Date num (pk) document supplier debit credit balance
2016-12-06 4302458 26933 SUPPLIER_1 4,35 4,35
2016-12-06 4302456 26933 SUPPLIER_1 19,12 19,12
2016-12-13 4330098 27023 SUPPLIER_1 5,79 5,79
2016-12-13 4330096 27023 SUPPLIER_1 25,45 25,45
2016-12-13 4330095 27023 SUPPLIER_1 1.157,00 -1.157,00
2016-12-13 4330591 223130 SUPPLIER_1 1.115,76 1.115,76
2016-12-13 4330588 SUPPLIER_1 10,00 10,00
2016-12-19 4342835 27108 SUPPLIER_1 1.294,00 -1.294,00
2016-12-19 4342838 27108 SUPPLIER_1 6,47 6,47
2016-12-19 4342836 27108 SUPPLIER_1 28,47 28,47
2016-12-22 4366603 223841 SUPPLIER_1 1.259,06 1.259,06
2016-12-26 4371509 27200 SUPPLIER_1 14,61 14,61
2016-12-26 4371511 27200 SUPPLIER_1 3,32 3,32
2016-12-26 4371508 27200 SUPPLIER_1 664,00 -664,00
2016-12-29 4376366 224598 SUPPLIER_1 646,07 646,07
我正在尝试选择余额之和为23.47的行。在这个例子中,这些是吗?
Date num (pk) document supplier debit credit balance
2016-12-06 4302458 26933 SUPPLIER_1 4,35 4,35
2016-12-06 4302456 26933 SUPPLIER_1 19,12 19,12
我尝试使用HAVING CLAUSE
但回复不正确。
我也尝试了PGSQL function
,但没有用。
有没有办法正确选择?
答案 0 :(得分:1)
我不确定如果没有编写程序这是否是最干净的方法,但它会起作用。这使用创建的列作为连接将表连接到自己。
SELECT 'join' as link, a.Date, a.num, a.document, a.debit, a.credit
FROM test a
INNER JOIN (
SELECT 'join' as link, a.Date, a.num, a.document, a.debit, a.credit FROM test a
)b
ON 'join' = b.link
WHERE a.debit + b.debit = 23.47