sql - 在一个范围内连接属性匹配的表
问题描述
您好我有一个查询,我想为一个涉及项目、成本和重量的数据库设置
说具有各自重量的项目表看起来像这样ItemWeight
NAME Weight
-------- -------
item1 250
item2 1600
item3 2200
还有另一个重量范围内的物品成本表,看起来像这样
CostPerWeight
Weight Cost
-------- ------
2500 6.00
2000 5.75
1500 5.00
1000 3.00
500 2.00
因此,我希望能够拉出的结果表是一个包含项目、重量和成本的表。
到目前为止,我已经放在一起:
SELECT I.NAME, I.weight, C.cost
FROM ItemWeight I
JOIN CostPerWeight C ON I.Weight <= C.Weight
但问题是一个项目,说 265 重量应该是 2.00 成本,因为它小于 500,但它也小于 1500,即成本 5.00,所以我只需要帮助找到一种方法来检查一个属性是否在另一个属性的范围内得到我想要的结果。非常感谢任何帮助,谢谢!
解决方案
解决方案之一是聚合:
SELECT I.NAME, I.Weight, MIN(C.Cost) AS Cost
FROM ItemWeight I
JOIN CostPerWeight C ON I.Weight <= C.Weight
GROUP BY I.NAME, I.Weight;
推荐阅读
- sql - Lag function in Microsoft Access (Window Function)
- xamarin - 如何将琐碎的 OpenGL 功能添加到 Xamarin 表单应用程序
- powerbi - Power BI problem in direct active relationship
- javascript - Loop regex until only :okthisisanemoji: exists between sets of :
- javascript - Typescript, return type not assignable to another
- html - 空白:正常行为真的很奇怪(容器中有些升高/高于其他)
- java - 如何在java中将向量的向量存储到二维数组中
- spring-boot - 使用 maven 构建与导出可运行 jar 的 jar 差异
- c# - 从 SQL 选择查询创建 XML
- ios - 在 iOS 中使用 Swift 导出 16 位图像