Mysql 列出当月最低价格的产品

Mysql 列出当月最低价格的产品,mysql,vb.net,Mysql,Vb.net,我在MySql数据库中有一个名为“fiyatlar”的表。表包含每月和每年的多个产品id和价格。请检查下表中的示例: ID Price Month Year 11111 11.00 5 2016 11111 12.15 6 2016 11111 13.10 7 2016 22222 8.75 5 2016 22222 8.50 6 2016

我在MySql数据库中有一个名为“fiyatlar”的表。表包含每月和每年的多个产品id和价格。请检查下表中的示例:

ID      Price     Month    Year
11111   11.00     5        2016
11111   12.15     6        2016
11111   13.10     7        2016
22222   8.75      5        2016
22222   8.50      6        2016
22222   8.00      7        2016 
我需要找到当月最低价格的产品,并在datagrid中列出它们


提前谢谢。

如果这是您的想法

SELECT *
FROM
(SELECT *
FROM fiyatlar
WHERE Year = YEAR(current_date())
AND Month = MONTH(current_date())) month_table
WHERE Price = MIN(Price)

根据新理解的需求进行更新:

我无法忍受不解决这个问题这将有助于:

SELECT fiyatlar.ID
FROM fiyatlar INNER JOIN
    (SELECT ID, MIN(Price) AS Price
    FROM fiyatlar GROUP BY ID) AS tmp
ON fiyatlar.ID = tmp.ID
    AND fiyatlar.Price = tmp.Price
WHERE Year = YEAR(current_date())
    AND Month = MONTH(current_date());
这是我重复最小值的测试表:

11111   12.15   6   2016
11111   11.00   5   2016
11111   10.90   10  2015
11111   10.90   7   2016
22222   9.00    9   2015
22222   8.75    5   2016
22222   8.70    7   2015
22222   8.50    6   2016
22222   7.90    4   2015
22222   7.70    8   2015
22222   7.70    7   2016
33333   8.99    1   2016
33333   7.80    2   2016
33333   3.90    3   2016
33333   5.90    4   2016
33333   7.90    5   2016
33333   5.90    6   2016
33333   3.90    7   2016

我还没有弄清楚mysql查询。所以我什么都没试过。
最低价格的产品
如果不是(1)最低价格的,有多少?很大程度上只是样本中的SQLSo问题,您希望查询的输出是什么?对于上面的样本表,id为11111的产品不是当月的最低价格(假设当月为7),但id为2222的产品是当月的最低价格。因此,它必须忽略1111,将2222添加到数据网格中。基本上我只需要检查当前月份,如果它的价格是本月之前的最小值,则添加到datagrid,else忽略并移动到下一个id。@Ardeth我创建了您的示例表,并验证了我的答案给出了本月最低价格的项目。是的,这是我需要的,但它给出了一个#1111-无效使用组函数errorDear Topshop。谢谢你的回答,但不幸的是工作不正确。它只带来了一种产品,而不是列表中最便宜的:)你说你每个月只想要一种产品,鉴于上面的示例表,它确实收回了最便宜的产品。我只是测试了一下,实际上他从来没有澄清过<代码>最低价格的产品(注意复数s)可能意味着5、3或1个最低价格的商品。不,你搞错了。假设我有500多种产品,每种产品每月和每年都有自己的价格。我需要得到的产品,如果它的价格是最便宜的一个,直到现在在本月。可能有多个产品在本月的列表中具有最佳价值。您在评论中说,如果某个商品不是本月最便宜的,则跳过它。所以,为什么不在给定示例的完整结果集中显示您想要的结果,这样就不会有更多的混淆了。