[英]Get max date for each line in a table in SQL
我編輯了答案,所以我的問題的解決方案是:
select DISTINCT e.Cod_proiect
, p.Descriere
, p.Stare
, p.ClientService
, e.Data
from ExpPoz as e
join Proiecte as p
on e.Cod_proiect=p.Cod_proiect
join (
select cod_proiect, max(data) maxDt
from ExpPoz
group by cod_proiect
) latest on latest.cod_proiect = e.cod_proiect and latest.maxDt = e.Data and p.Stare='I'
這將產生以下錯誤:子查詢返回了多個值,我試圖獲取具有最大日期的每一行。
我具有以下表結構:
a date1
a date2
a date3
b date4
b date5
輸出應該是,假設date3和date5是最舊/最大的:
a date3
b date5
提前致謝。
這應該可以解決問題:
select e.Cod_proiect
, p.Descriere
, p.Stare
, p.ClientService
from ExpPoz as e join Proiecte as p on e.Cod_proiect=p.Cod_proiect
join (
select cod_proiect, max(data) maxDt
from ExpPoz
group by cod_proiect
) latest on latest.cod_proiect = e.cod_proiect and latest.maxDt = e.Data
where p.Stare='I'
請注意,您寫的方式joins
是很老,它是更好,更清楚,如果你使用現代化的join
風格。 在此查詢中,我選擇了您需要的所有內容,並根據cod_proiect
的最新記錄加入了一次。
您可以嘗試以下方法:
SELECT cod_proiect,
MAX(data)
FROM
(
SELECT DISTINCT
ep.cod_proiect,
ep.data
FROM ExpPoz ep
JOIN Proiecte pr
ON ep.cod_proiect = pr.cod_proiect
AND pr.stare = 'I'
)
GROUP BY cod_proiect;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.