2016-11-25 38 views
0

This is the table data如何使用groupby,在sql中有不同

表名是voyagemaster。如何選擇不同的船隻和一艘船舶有很多的航程號碼,因此我添加了航行號碼 以選擇航程號碼作爲最大航程(航程)。 根據船隻選擇最大(航行)和航程號碼。 如何解決..

select distinct(Vessel), VoyageID, VoyageNumber, max(VoyageDate) as vdate, VIA, 
     ROTNo, CutOffDate, CutOffTime, ETA, ETD 
from VoyageMaster 
group by Vessel 

預先感謝

+0

添加一些示例表格數據和預期結果以及格式化文本。同時向我們展示您當前的查詢嘗試。 – jarlh

+0

船隻 – sarode111

+0

從VoyageMaster集團中選擇不同的(船隻),VoyageID,VoyageNumber,max(VoyageDate)作爲vdate,VIA,ROTNo,CutOffDate,CutOffTime,ETA,ETD Distinct不是列上的函數,它是'SELECT DISTINCT'並適用於整個選定的行。 ('select distinct(Vessel),VoyageID ...'與'select distinct Vessel,VoyageID ...'相同,也與'select distinct Vessel,(VoyageID)...'相同......) – jarlh

回答

0

試試這個:

SELECT A.Vessel,V1.VoyageID,V1.VoyageNumber,A.VoyageDate 
FROM VoyageMaster V1 
JOIN (SELECT Vessel,MAX(VoyageDate) VoyageDate 
     FROM VoyageMaster 
     GROUP BY Vessel) A 
    ON A.Vessel = V1.Vessel 
    AND V1.VoyageDate = A.VoyageDate 
+0

顯示錯誤:-ambiguous列名'Vessel'和'VoyageDate' – sarode111

+0

立即查看我更新了查詢 – Mansoor

+0

感謝它對我真的很有幫助.. – sarode111

0

試試這個:

SELECT * from VoyageMaster 
where VoyageDate in (select max(VoyageDate)from VoyageMaster group by vessel) 

或者只有你想要的列:

SELECT Vessel,VoyageID,VoyageNumber,VoyageDate,VIA,ROTNo,CutOffDate,CutOffTime,ETA,ETD 
from VoyageMaster 
where VoyageDate in (select max(VoyageDate)from VoyageMaster group by vessel)