MySQL检查一个值是否在从子查询中得出的值的范围内



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

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

我有一个子查询,其中包含不同的项目代码,最大(价格(和最高(价格(的75%,这是结果。

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

,如果价格落在特定项目代码的第二个表范围内,我只需要从第一表中拉这些行。谁能帮忙?

您可以尝试一下:

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和chwck加入主表,价格在最高和最高价格之间的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

相关内容

  • 没有找到相关文章

最新更新