gpt4 book ai didi

mysql - SQL Group By 与另一列上的 Order By Last

转载 作者:行者123 更新时间:2023-11-30 01:10:15 25 4
gpt4 key购买 nike

我知道这个问题已经被问过十几次了,但我尝试了不同的解决方案,但没有一个能解决我面临的问题。

我有以下查询:

SELECT mn.meter_name, m.meter_number, m.meter_location, r.rates_meter_rate, 
r.rates_meter_PPD, m.meter_ID, mt.metertracking_periodend,
mt.metertracking_read, mt.metertracking_readend
FROM db_meters m, db_meters_name mn, db_rates_meter r, db_meters_tracking mt
WHERE m.ICP_ID = '$ICP' AND m.meter_name_ID = mn.meter_name_ID
AND r.meter_ID = m.meter_ID AND r.contract_ID = '$contract_ID'
AND mt.meter_ID = m.meter_ID
GROUP BY meter_ID
ORDER BY ABS( DATEDIFF( metertracking_periodend, NOW() ) )

但它并没有完全发挥其应有的作用。它希望它能显示到当前日期的最新的metertracking_periodend,但相反,由于每米的metertracking表有多个条目,所以它显示的是第一个插入的条目。

我尝试将其更改为:

ORDER BY metertracking_periodend DESC

但它输出相同,它似乎与 GROUP BYmeter_ID 相关,我需要它,因为我只想要每米的最新结果,其中最多可以有四个。

因此,如果有人可以帮助我输出按最新“metertracking_periodend”排序的信息,我将不胜感激。谢谢。

编辑:输出 enter image description here

“metertracking_periodend”实际有一个“2013-10-01”条目,因此这是应该从表中获取的内容,而不是 2012-12-31 的旧条目。希望此编辑有所帮助。

最佳答案

试试这个:

SELECT mn.meter_name, m.meter_number, m.meter_location, r.rates_meter_rate, 
r.rates_meter_PPD, m.meter_ID, mt.metertracking_periodend,
mt.metertracking_read, mt.metertracking_readend
FROM db_meters m, db_meters_name mn, db_rates_meter r, db_meters_tracking mt
WHERE m.ICP_ID = '$ICP' AND m.meter_name_ID = mn.meter_name_ID
AND r.meter_ID = m.meter_ID AND r.contract_ID = '$contract_ID'
AND mt.meter_ID = m.meter_ID
AND metertracking_periodend = (
select max(metertracking_periodend)
from db_meters_tracking
where meter_ID = mt.meter_ID
group by meter_ID
)
ORDER BY metertracking_periodend

关于mysql - SQL Group By 与另一列上的 Order By Last,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19507718/

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