1
它應該從ProcessHistory表中的最新記錄的SystemTable和LoadStatus列中返回一些字段。的關係是1對多:這將如何使這個SQL查詢更簡單/更短?
SELECT ST.[SystemDetailID], ST.[SystemName], LH.LatestLoadStatus
FROM [SystemTable] AS ST
LEFT OUTER JOIN
(
SELECT LHInner.LoadStatus AS LatestLoadStatus, LHInner.SystemDetailID FROM [dbo].[LoadHistory] AS LHInner
WHERE LHInner.LoadHistoryID in
(
SELECT LatestLoadHisotoryID FROM
(
SELECT MAX(LoadHistoryID) as LatestLoadHisotoryID, SystemDetailID FROM [dbo].[LoadHistory]
GROUP BY SystemDetailID
) l
)
) AS LH ON ST.SystemDetailID = LH.SystemDetailID
感謝,
SELECT MAX(LoadHistoryID)作爲LoadHistoryID FROM [DBO] [LoadHistory]是錯誤的。它必須按照SystemDetailID進行分組。 –
對不起,忘了把它加回來.. – StevieG
當你添加它時,你不能再使用「AND LH.LoadHistoryID IN」,因爲內部select語句將返回2列,那麼你必須寫我寫的東西原來。 –