2011-11-30 81 views
0

這是SQL Server上運行不同的系統名稱2000搜索結果限制在多個記錄返回

背景:當一個新的服務器帶來了在網絡上,它會經過一系列狀態(階段),如(加載,測試,配置,生產等)是生產是最後一步(並非報告中的每個服務器都將在生產中,因此這一點信息可能是一個爭論點)。

我繼承了這個,所以如果有任何問題,我會盡我所能回答他們。我試圖運行查詢以獲取特定時間段內所有服務器的最新狀態。我的查詢目前正在返回服務器的每個狀態,我只需要當前狀態,這就是我需要您的幫助的地方。

我正在使用的查詢如下:

SELECT SD.ProjectName, SD.SystemName, SD.Status, H.history_id 
FROM dbo.SI_SystemDetail AS SD 
INNER JOIN dbo.SI_Projects AS P ON SD.ProjectName = P.ProjectName 
INNER JOIN dbo.SI_StatusHistory AS H ON SD.SystemName = H.SystemName 
WHERE  
    (P.Cancelled = 'N') 
    AND (P.Platform LIKE '%ibm%') 
    AND ('20110101' <= CONVERT(varchar(8), H.EffectiveDate, 112)) 
    AND (CONVERT(varchar(8), H.EffectiveDate, 112) <= '20111111') 
ORDER BY 
    H.history_id DESC, SD.SystemName, SD.ContactSBCuid, SD.ActualLiveDAte DESC, 
    SD.ProjectName, SD.SystemType, H.EffectiveDate` 

這將返回幾個重複的系統名稱,但我只需要一個,並應與最高history_id數量相對應。例如,讓我們說有一個名爲server:

Server Name  Status  History_ID 
Server01   Loading  1001 
Server01   Configuring 1081 
Server01   Testing  1101 
Server01   Production 1451 
Server02   Loading  1002 
Server02   Configuring 1083 
Server02   Testing  1104 
Server02   Failed  1455 

我需要的只是以下結果返回:

Server Name  Status  History_ID 
Server01   Production 1451 
Server02   Failed  1455 

預先感謝幫助。

+0

@用於清理渣-S感謝。我嘗試過,但情況變得更糟。 :) – HPWD

回答

1

UNTESTED:

SELECT SD.ProjectName, SD.SystemName, SD.Status, H.history_id 
FROM dbo.SI_SystemDetail AS SD 
INNER JOIN dbo.SI_Projects AS P 
    ON SD.ProjectName = P.ProjectName 
INNER JOIN dbo.SI_StatusHistory AS H 
    ON SD.SystemName = H.SystemName 
WHERE (P.Cancelled = 'N') AND (P.Platform LIKE '%ibm%') AND ('20110101' <= CONVERT(varchar(8), H.EffectiveDate, 112)) AND (CONVERT(varchar(8), H.EffectiveDate, 112) <= '20111111') 
AND history_ID = (
    Select max(history_ID) 
    FROM SI_Status_History iSH 
    where iSH.SystemName = SD.SystemName) 
ORDER BY H.history_id DESC, SD.SystemName, SD.ContactSBCuid, SD.ActualLiveDAte DESC, SD.ProjectName, SD.SystemType, H.EffectiveDate 
+0

我知道它需要一個子查詢,但我不知道該把它放在哪裏。非常感謝。 – HPWD

+0

我剛剛實施了您的解決方案並進行了測試,結果非常完美。再次感謝。 – HPWD

+0

很高興我能幫到你。 – xQbert