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