MySQL的左连接是最高的
我想为共享同一工作的特定案例选择工件总数。 但我只想要最高职位的结果 我有下表(3dprint) 所以我试过了MySQL的左连接是最高的,mysql,Mysql,我想为共享同一工作的特定案例选择工件总数。 但我只想要最高职位的结果 我有下表(3dprint) 所以我试过了 SELECT SUM(Qty_piece) FROM 3dprint WHERE 3dprint_caseID = 186 ORDER BY 3dprint_jobID DESC LIMIT 1 但它给我7。我要4号。如何继续工作?这应该可以: SELECT SUM(Qty_piece) FROM 3dprint WHERE 3dprint_caseID = 186 Group
SELECT SUM(Qty_piece) FROM 3dprint
WHERE 3dprint_caseID = 186
ORDER BY 3dprint_jobID DESC LIMIT 1
但它给我7。我要4号。如何继续工作?这应该可以:
SELECT SUM(Qty_piece) FROM 3dprint
WHERE 3dprint_caseID = 186
Group by 3dprint_caseID
Having job_id = max(job_id)
ORDER BY 3dprint_jobID DESC LIMIT 1
虽然@p.Jairaj的答案是正确的,但如果您实际上总是发送案例id,则不需要分组
SELECT Qty_piece FROM 3dprint
WHERE case_id = 186 and job_id in (select max(job_id) from 3dprint where case_id = 186)
使用带有小排版的查询并删除与之无关的求和函数:
SELECT Qty_piece FROM 3dprint
WHERE case_id = 186
ORDER BY job_id DESC LIMIT 1
您已经按作业id排序,并且限制为1,因此不需要求和函数。仅当您希望将所有值相加(总计)时才使用sum函数。我刚刚添加了选择sum(Qty\u piece)
,以便直接获得结果。对于共享同一作业的特定案例,您所说的工件总和是什么意思?总和应该是数量的最大值还是最小值
?或者,您是否只需要所有作业ID的数量
之和?
SELECT Qty_piece FROM 3dprint
WHERE case_id = 186
ORDER BY job_id DESC LIMIT 1