gpt4 book ai didi

MySQL Sum 列 IF ID 在另一个表查询中

转载 作者:行者123 更新时间:2023-11-29 12:46:50 25 4
gpt4 key购买 nike

编辑 ---

我以为我已经有了,但下面的似乎不起作用。看起来它汇总了数据库中的所有内容。

SELECT SUM( drivetime ) AS drivetime, record_id
FROM `workforce`
WHERE EXISTS (
SELECT *
FROM project_info
WHERE date1
BETWEEN 'xx-xx-xxxx'
AND 'xx-xx-xxxx'
)

将尝试以下建议。

--结束编辑

最终目标是(伪):从 R_ID 所在的任务中选择 SUM(工作)(从 X 和 X 之间日期的信息中选择 ID)

信息

+----------------------+
| ID | other fields...|
+-----+----------------+
| 1 | etc... |
+-----+----------------+
| 2 | etc... |
+-----+----------------+
| 3 | etc... |
+-----+----------------+

任务

+----------------------+
| R_ID | work| other..|
+-------+-----+--------+
| 1 | 10 | |
+-------+-----+--------+
| 2 | 2 | |
+-------+-----+--------+
| 2 | 2 | |
+-------+-----+--------+
| 3 | 2 | |
+-------+-----+--------+

我们的第二个查询返回 2 和 3 在日期范围内。所以总和是 6。实现这一目标的最佳方法是什么?

我能找到的所有内容都有硬条件 - 不是基于第二个选择的范围条件。目前,我从初始选择中获取范围,然后迭代给定表中的所有记录以对范围内的内容求和。对于数千条记录来说,这非常慢。

我会继续寻找并发回我发现/尝试的任何内容。

感谢您的阅读!

-- 供后代使用的当前代码(经过编辑以删除额外的字段和数据)。仅将 mySQL 标记为服务器端是无关紧要的(并且正在转换为 PHP)。

psql = "SELECT * FROM project_info where approved='yes' where date1 BETWEEN '"& sdate &"' AND '" & edate & "' order by id DESC"
Set prs = Conn.Execute(psql)

do until prs.EOF

sumsql = "SELECT SUM(drivetime) as drivetime from workforce where approved='yes' and report_id='" & prs("ID") & "'"
set sumrs = Conn.Execute(sumsql)

dtime = dtime + cLng(sumrs("drivetime"))

prs.movenext
loop

最佳答案

我认为这是一个相当简单的连接、求和和分组依据:

  SELECT t.r_id, SUM(t.work) work_sum
FROM tasks t
JOIN info i
ON i.id = t.r_id
AND i.date BETWEEN xxx AND yyy
GROUP BY t.r_id

如果您希望该范围内没有信息的任务的 work_sum 为空:

   SELECT t.r_id, SUM(t.work) work_sum
FROM tasks t
LEFT JOIN info i
ON i.id = t.r_id
AND i.date BETWEEN xxx AND yyy
GROUP BY t.r_id

如果您希望 0 work_sum 用于没有该范围内信息的任务:

   SELECT t.r_id, COALESCE(SUM(t.work),0) work_sum
FROM tasks t
LEFT JOIN info i
ON i.id = t.r_id
AND i.date BETWEEN xxx AND yyy
GROUP BY t.r_id

关于MySQL Sum 列 IF ID 在另一个表查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25311773/

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