c# - 如何根据到期日期从库存表中获取准确的批处理 ID?

标签 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     |     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

最佳答案

您正在使用聚合 min 函数,它会给出错误的输出。您可以使用 order by 函数进行排序。

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;

DEMO

关于c# - 如何根据到期日期从库存表中获取准确的批处理 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56813147/

相关文章:

c# - Outlook vsto 中的邮件接收/移动/删除/创建/发送事件

c# - 检查点是否可见时出现 NullreferenceException

php - mySQL 更简单的方法来执行多条语句?

mysql - 选择具有相同 id 的下一条记录

sql - 从路径中删除文件名

mysql - 使用 LEFT JOIN 在查询中添加列

c# - 调用使用Using语句打开的子表单的方法

c# - 如果我的接口(interface)必须返回 Task 什么是无操作实现的最佳方法?

mysql - Tomcat、MySQL -> 无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序

HTML 表单到 SQL 数据库