SQL select语句类似于Excel中垂直搜索近似匹配

标签 sql exact-online invantive-sql

有一个包含“价格”和“数量”列的表。

例如:

rec  price   qty
1.   10,00     1
2.    7,50     5
3.    5,00    25
4.    3,00   100

我需要选择数量为65的价格。这是记录3的价格。数量65在数量25和100之间。如何在sql查询中解决这个问题?

最佳答案

您可以使用内部 SQL 语句来解决该问题,该语句会尝试找到小于或等于您请求的数量 65 的最高数量:

select pce.price
from   prices pce
join   ( select max(qty) qty
         from   prices
         where  qty <= 65
       ) pce2
on     pce.qty = pce2.qty

这里的pce2是匹配prices行的连接。 pce 表已连接,可以访问连接的所有字段。仅当 pricesqty 没有重复项时,此方法才能正常工作。

关于SQL select语句类似于Excel中垂直搜索近似匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41890934/

相关文章:

php - 字符串转十进制 Laravel 迁移

php - 如何查找给定日期最近的第 25 天或第 10 天并将其添加到数据库中

sql - 从 Exact Online GoodsDeliveryLines 获取序列号以上传到 Freshdesk 工单时出现错误 itgensql005

exact-online - 确定 Exactonlinerest..MailMessagesReceived 的适用划分

freshdesk - 通知: limited number of request exceeded during import of delivery tickets in Freshdesk

sql - 在 Reporting Services 中使用存储过程

sql - 在 Oracle 中是否有任何方法可以只选择没有日期列或行依赖性的新/更改行?

php - 无法通过 Exact Online REST API 制裁剪品

odata - 使用 Invantive 在 Exact Online 上手工制作 OData 查询