我有一个表,如下所示,有5条记录。我想获取金额小于2000的所有记录的其余部分。除了最后/最新的两条记录。
| 发票ID|日期|金额|
| - ------|- ------|- ------|
| 小行星|2023年2月26日中午12:59|二万八千五百元|
| 小行星|2023年2月26日下午01:01|三百元|
| 小行星1158|2023年2月26日下午01:02|八百五十元|
| 小行星1159|2023年2月26日下午01:02|二万九千五百元|
| 小行星116|2023年2月26日下午01:03|八百五十元|
这是我想要的结果(保留最新的2条记录,并获取所有记录中数量低于2000的其余记录):
| 发票ID|日期|金额|
| - ------|- ------|- ------|
| 小行星|2023年2月26日下午01:01|三百元|
| 小行星1158|2023年2月26日下午01:02|八百五十元|
SELECT amount
from invoice
where invoiceDate LIKE '%2023-02-26%'
AND (amount < 2000)
ORDER BY invoiceId DESC
LIMIT 2,6
当我尝试上面的查询时,它只返回一个记录300,而不是预期的300和850。为什么?
但它的工作时,尝试与...
(amount > 0) or (amount > 300) or (amount > 500) -- as expected,
(amount > 0), -- returns 300 and 850 and 28500.
(amount > 300), -- returns 850 and 28500.
(amount > 500), -- returns 850 and 28500.
但是当应用(amount > 20000)
时,它还是不起作用,它返回null而不是预期的20000。为什么?
1条答案
按热度按时间erhoui1w1#
从顶部ID中减少所需的排除记录数可以解决这个问题。
但仍然期待一个聪明的答案除了这种方法。