gpt4 book ai didi

php - MYSQL 语句没有显示正确的值

转载 作者:行者123 更新时间:2023-11-29 19:45:50 24 4
gpt4 key购买 nike

我是 MySQL/PHP 领域的新手,正在自学。我正在尝试提取已发 cargo 品的数据,这是我正在使用的查询:-

select jobs.job_number, jobs.employee_end, jobs.qty_comp, jobs.`date`,SUM(jobs.scrap), SUM(jobs.job_time) 
FROM jobs where jobs.job_number in (
SELECT j.job_number FROM jobs j
WHERE j.moved_to = 'shipped'
AND j.`date` BETWEEN '2016-11-28' AND '2016-12-02'
AND j.qty_comp > 0
)
GROUP BY jobs.job_number

我收到正确的SUM(scrap)SUM(job_time)job_numbers ,它没有向我显示最后一个条目 moved_to = 'shipped', qty_comp > 0 。它显示 job_number 第一次扫描的第一个条目。

感谢您的帮助和建议。

最佳答案

查询可以重写为(不需要子查询):

SELECT jobs.job_number, jobs.employee_end, jobs.qty_comp, jobs.`date`,
SUM(jobs.scrap), SUM(jobs.job_time)
FROM jobs AS j
WHERE j.moved_to = 'shipped' AND
j.`date` BETWEEN '2016-11-28' AND '2016-12-02' AND
j.qty_comp > 0
GROUP BY jobs.job_number

“IN”条件不是必需的,并且由于聚合(分组依据)是按 job_number 进行的,因此只有 jobs.job_number、SUM(jobs.scrap)、SUM(jobs.job_time) 才会具有有意义的值。

由于列 jobs.employee_end、jobs.qty_comp、jobs.date 将来自多行,因此聚合只能给出 1 个值,在本例中为第一个值。通过在这些列上添加 MAX 聚合,您可能可以获得最后一个值。

关于php - MYSQL 语句没有显示正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40988551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com