C# 如何根据到期日期从库存表中获取准确的批次ID?

C# 如何根据到期日期从库存表中获取准确的批次ID?,c#,mysql,sql,C#,Mysql,Sql,我想根据fifo失效日期从库存表中获取批次id。如何得到它。我写了一个查询,它给出了准确的批次,但批次id不准确。基本上我想拿的是第一批过期的产品 库存表如下图所示 Batch_ID | Product_ID | Quantity | Is_Expiry |Expiry_Date | Location_ID 6 | 148 | 90 | 1 | 2019-08-24 | 1 4 |

我想根据fifo失效日期从库存表中获取批次id。如何得到它。我写了一个查询,它给出了准确的批次,但批次id不准确。基本上我想拿的是第一批过期的产品

库存表如下图所示

  Batch_ID   |  Product_ID  | Quantity | Is_Expiry |Expiry_Date | Location_ID
       6     |     148      |    90    |    1      | 2019-08-24 |     1
       4     |     148      |    75    |    1      | 2019-09-13 |     1
       2     |     148      |    0     |    1      | 2019-07-11 |     1
我写这个查询

Select batch_id,min(datediff(expiry_date,now())) as Remaining_Days  From Stock Where Product_ID = '148' and quantity > 0  and Location_ID = '1'
电流输出

Batch_ID   | Remaining_Days 
   4       |    56
预期输出:

Batch_ID   | Remaining_Days 
   6       |     56

您使用的是聚合最小值函数,它提供了错误的输出。您可以使用“按函数排序”进行排序

Select batch_id,(datediff(expiry_date,now())) as Remaining_Days From stock 
Where Product_ID = '148' and quantity > 0  and Location_ID = '1'
order by Remaining_days
limit 1;

请发送库存表的完整数据。我的意思是添加产品ID、is\u expiry和查询中存在的任何列。@SaeidAmini is\u expiry只是表示产品有到期日期或有效期not@SaeidAmini现在查看编辑,谢谢,它正在工作,但是我通过编程实现了另一个逻辑,以获得准确的批id