MySQL 检查值是否在从子查询派生的值范围内

MySQL Check if a value is within the range of values derived from a subquery

我需要查询方面的帮助,我有一个 table,这是一个示例

Item Code   Qty   Price   Supplier
1234          1      20    A
1234          3      15    B
1234          6      2     C
4321          2      8     D
4321          7      1     A
4321          9      5     G
5432          8      10    E
5432          3      2     F
5467          5      9     H
5467          5      7     K

我有一个子查询,其中包含不同的商品代码、max(price) 和 max(price) 的 75%,这就是结果。

Item Code   Max value   Min Value
1234         20          15
4321         8           6
5432        10           7.5
5467         9           6.75

如果价格在特定项目代码的第二个 table 范围内,我只需要从第一个 table 中提取那些行。有人可以帮忙吗?

你可以试试这个:

SELECT
    a.*
FROM items a
JOIN (
    SELECT 
        item_code,
        MAX(Price) as Max_Value,
        MAX(Price) * 0.75 as Min_Value
    FROM items
    GROUP BY item_code) b
ON a.item_code = b.item_code
WHERE a.price between b.Min_Value AND b.Max_Value
order by a.item_code, a.price ASC

我将首先获得每个 itemCode 的最高价格,然后使用 itemCode 加入主要 table 并确认价格在每件商品的最高价格和最高价格的 75% 之间。

Select tbl.*
From myTable tbl
Join (
Select item_code,
         max(price) as mx,
         Round(max(price)*.75,0) as mx75
From myTable
Group by item_code) tab
On tbl.item_code = tab.item_code
And tbl.price between tab.mx75 and tab.mx
Order by 1, 4