我需要获取关系表中的最后一个值,但它不会为null。 下表如下:
1 - Invoices
Invoice Date Vendor Amount
A1 2018-08-10 John 150
A2 2018-08-12 Paul 250
A3 2018-08-15 Henry 180
2 - Payments
Check DateP Invoice Vendor AmountP
101 2018-09-01 A1 John 150
102 2018-09-01 A2 Paul 250
103 2018-09-15 A1 John 150
104 2018-09-10 A3 Henry 180
105 2018-09-10 A3 Henry 180
结果应该是这样的:
Check DateP Invoice Vendor AmountP
102 2018-09-01 A2 Paul 250
103 2018-09-15 A1 John 150
105 2018-09-10 A3 Henry 180
能帮我吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
看起来您想要每张发票的最后一笔付款。如果您的DBMS支持,则可以使用row_number()
。
SELECT check,
datep,
invoice,
vendor,
amountp
FROM (SELECT check,
datep,
invoice,
vendor,
amountp,
row_number() OVER (PARTITION BY invoice
ORDER BY datep DESC) rn
FROM elbat) x
WHERE rn = 1;
如果ORDER BY datep DESC
定义了顺序(而不是我假设的ORDER BY check DESC
),请用check
替换datep
。