我有一個名爲tbservicecallallocation
的表,下面是該表的數據。如何在WHERE子句中使用MySql MAX()
從以上數據我想,技術人員與他們的MAX AllocationTime
。 下面的圖片顯示了我想要的結果。
請幫我寫下MySQL SELECT查詢以檢索上面的數據。
我有一個名爲tbservicecallallocation
的表,下面是該表的數據。如何在WHERE子句中使用MySql MAX()
從以上數據我想,技術人員與他們的MAX AllocationTime
。 下面的圖片顯示了我想要的結果。
請幫我寫下MySQL SELECT查詢以檢索上面的數據。
有一個子查詢返回每個技術人員的最大AllocationTime。與結果加入:
select t1.*
from tbservicecallallocation t1
join (select TechnicianIDF, max(AllocationTime) as MAxAllocationTime
from tbservicecallallocation
group by TechnicianIDF) t2
on t1.TechnicianIDF = t2.TechnicianIDF
and t1.AllocationTime = t2.MAxAllocationTime
末可以選擇添加ORDER BY
條款:
ORDER BY AllocationStatus DESC
你可以使用子查詢來計算最大AllocationTime
:
SELECT *
FROM tbservicecallallocation t1
WHERE (TechnicianIDF,AllocationTime) IN
(SELECT TechnicianIDF, MAX(AllocationTime) AS AllocationTime
FROM tbservicecallallocation
GROUP BY TechnicianIDF)
'@ lad2025'。對不起,我只能批准一個答案。你的回答對我來說也是完美的...但是對於這個時候很抱歉..順便說一句,偉大的工作。 – Vijay
試試這個:
SELECT *
FROM tbservicecallallocation t1
WHERE NOT EXISTS(
SELECT 'NEXT'
FROM tbservicecallallocation t2
WHERE t1.TechnicianIDF = t2.TechnicianIDF
AND t2.AllocationTime > t1.AllocationTime
)
試試這個
select t1.*
from tbservicecallallocation as t1 inner join
(
select technicianidf, max(allocationtime) as allocationtime
from tbservicecallallocation
group by technicianidf
) as t2 on t1.technicianidf=t2.technicianidf and t1.allocationtime=t2.allocationtime
與我的答案一樣,只需7分鐘。 – jarlh
這可能是頁面刷新問題。當我打開頁面時,我沒有看到你的信息:) – Madhivanan
@ lad2025,兩排,T2將不包含任何重複。如果相同的技術人員使用相同的最大值(分配時間)兩次,則兩行都將被返回。 (就像你的查詢。) – jarlh
:)是的,你是對的。第二個查詢將每個技術人員總是返回一行。 – lad2025