gpt4 book ai didi

mysql - 如何使用子查询得到我想要的结果

转载 作者:行者123 更新时间:2023-11-29 13:51:42 26 4
gpt4 key购买 nike

我正在使用以下查询:

select distinct a.idclientecrm,
(case
when max(c.fcierre) is null then max(c.falta)
else max(c.fcierre)
end) as ultima_tarea,
d.nombre
from clientescrmporlistadeclientescrm a
inner join clientescrmporlistadeclientescrm b on a.idclientecrm = b.idclientecrm
inner join tareas c on a.idclientecrm = c.idclientecrm
inner join resultadosdetareas d on c.idresultadodetarea=d.idresultadodetarea
inner join clientescrm e on a.idclientecrm=e.idclientecrm
where b.idlistadeclientescrm = 70
and a.idlistadeclientescrm = 58
and e.fbaja is null
group by a.idclientecrm,d.nombre
limit 10

这给了我以下结果。

|| *idclientecrm* || *ultima_tarea* || *nombre* ||
|| 10149991 || 2013-02-05 13:55:50 || Llamar cualquier agente ||
|| 10149991 || 2013-01-04 00:00:00 || Llamar mismo agente ||
|| 10149991 || 2013-04-23 14:47:05 || Ocupado ||
|| 10150908 || 2012-12-20 00:00:00 || Llamar cualquier agente ||
|| 10150908 || 2013-01-04 00:00:00 || Llamar mismo agente ||
|| 10150908 || 2012-11-29 00:00:00 || Venta ||
|| 10151225 || 2013-01-22 09:06:26 || Llamar cualquier agente ||
|| 10151225 || 2013-03-12 10:53:10 || Ocupado ||
|| 10151226 || 2012-07-04 00:00:00 || Llamar mismo agente ||
|| 10151226 || 2012-09-25 00:00:00 || Venta ||

我希望这个子查询给我这个结果:

|| *idclientecrm* || *ultima_tarea* || *nombre* ||
|| 10149991 || 2013-04-23 14:47:05 || Ocupado ||
|| 10150908 || 2013-01-04 00:00:00 || Llamar mismo agente ||
|| 10151225 || 2013-03-12 10:53:10 || Ocupado ||
|| 10151226 || 2012-09-25 00:00:00 || Venta ||

我不知道子查询是否是唯一的方法,或者我的原始查询是否可以修改以获得结果。

如果示例不清楚,我希望为每个 idclientecrm 提供最新的 tarea 及其对应名称。从resultadosdetareas中获取tarea的名称。

如果有人有类似的例子,也许我可以调整我的查询。

提前致谢!

最佳答案

您正在寻求获取 groupwise maximum ,尽管是在列的组合上:

SELECT   c.idclientecrm,
IFNULL(t.fcierre, t.falta) ultima_tarea,
d.nombre

FROM tareas c
JOIN (
SELECT idclientecrm,
MAX(fcierre) fcierre,
MAX(falta ) falta
FROM tareas
GROUP BY idclientecrm
) t USING (idclientecrm)
JOIN resultadosdetareas d USING (idresultadodetarea)

WHERE IF(t.fcierre IS NULL, t.falta=c.falta, t.fcierre=c.fcierre)

GROUP BY c.idclientecrm

关于mysql - 如何使用子查询得到我想要的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596289/

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