1
我需要優化以下查詢在同一個表優化有兩個MAX列查詢
SELECT
Id, -- identity
CargoID,
[Status] AS CurrentStatus
FROM
dbo.CargoStatus
WHERE
id IN (SELECT TOP 1 ID
FROM dbo.CargoStatus CS
INNER JOIN STD.StatusMaster S ON CS.ShipStatusID = S.SatusID
WHERE CS.CargoID=CargoStatus.CargoID
ORDER BY YEAR([CS.DATE]) DESC, MONTH([CS.DATE]) DESC,
DAY([CS.DATE]) DESC, S.StatusStageNumber DESC)
有兩個表
CargoStatus
,並且StatusMaster
Statusmaster
有012列CargoStatus
有列ID, StatusID (FK StatusMaster StatusID column), Date
有沒有寫這個查詢的任何其他更好的辦法。
我想要每個貨物的最新狀態(每個cargoID
只有一個條目)。
嗨@marc_s將它返回每個cargoid只有一行。我試過但它不適合我 – Thakur 2012-01-13 09:54:42
我只需要返回每個貨物的頂部(最新的狀態通過日期desc,stagenumber desc)行,但作爲整個表格不是一行 – Thakur 2012-01-13 10:07:50
@AamodThakur:這將返回**一條魚子每個'CargoID' ** - 如果您有10個'CargoID'值 - 您將獲得10行。 – 2012-01-13 10:10:14