【发布时间】:2020-08-01 17:23:24
【问题描述】:
我正在尝试运行 MySQL 查询以从名为 production 的表中获取最后一个生产数量(这是用户先前添加的数量,在这种情况下为 7),但我得到的是最高产量。这些是表格:
_____ Production ___________
"production_id","prod_id","production_date","production_qty"
"1","40001","2020-04-15","35"
"2","40002","2019-02-08","54"
"3","40002","2020-04-08","67"
"4","40001","2020-04-02","76"
"5","40001","2020-05-08","21"
"6","40001","2020-04-29","34"
"7","40003","2020-04-03","545"
"8","40003","2020-04-18","7"
"9","40001","2020-04-25","6"
"10","40001","2020-04-25","6"
"11","40001","2020-04-25","6"
"12","40002","2020-04-13","5"
"13","40003","2020-04-01","5"
"14","40001","2020-04-17","3"
"15","40003","2020-04-04","2"
"16","40002","2020-04-11","45"
"17","40001","2020-04-02","4"
"18","40002","2020-04-01","3"
"19","40003","2020-04-17","2"
"20","40003","2020-04-29","3"
______ Products ____________
"product_id","product_name","product_unit","product_group","product_size"
"40001","tested","Gram","EVA","7/10"
"40002","testing","KG","EVA","7/10"
"40003","teste454","KG","PU","7/10"
这是我的查询:
SELECT product_id, product_unit, production_qty, SUM(production_qty) as prod_in_hand FROM
products JOIN production ON products.product_id = production.prod_id WHERE product_id =
40003 AND production_date < CURRENT_DATE
上面的查询产生了这个结果:
prod_id, product_unit, production_qty, prod_in_hand
40003, KG, 545, 561
但我期待“7”作为生产数量。 我怎样才能做到这一点? 我正在使用 XAMPP 服务器 phpMyAdmin MariaDB 服务器版本 10.3.16
【问题讨论】:
-
你在使用
MySQL 8.0吗?并发布您的预期输出。 -
您正在对生产日期
-
请在代码问题中给出minimal reproducible example--剪切&粘贴&可运行代码;具有期望和实际输出(包括逐字错误消息)的示例输入(作为初始化代码);标签和版本;明确的规范和解释。对于包含最少代码的错误,您可以给出的代码是您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于 SQL 包括 DDL 和表格初始化。当你得到一个你不期望的结果时,找出你的误解是什么。--隔离第一个错误的子表达式及其输入和输出。 (调试基础。)
-
您的查询是一个常见问题。在考虑发布之前,请阅读手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。
-
@philipxy last 表示此特定产品的最后一个条目,如果我到那时分组,我会收到多个条目,但只需要一个
标签: sql date mariadb sql-order-by greatest-n-per-group