2017-07-14 68 views
0

如何爲以下腳本應用CROSS APPLY函數?我想檢索每個多記錄的TOP 1。從多個記錄中選擇top 1 SQL Server

select s.UnitID 
     ,p.PartNumber 
     ,po.ProductionOrderNumber 
     ,s.[Value] as SerialNumber 
     ,p.Revision 
     ,case ush.UnitStatusID 
     when 0 
      then 'Processing' 
     else 'Completed' 
     end as UnitStatusID 
     ,ush.[Time] as LastUpdate 
     ,ush.LooperCount 
from ffpart as p 
    join ffProductionOrder as po 
     on p.ID = po.PartID 
    join ffUnitDetail as ud 
     on po.ID = ud.ProductionOrderID 
    join ffSerialNumber as s 
     on ud.UnitID = s.UnitID 
    join ffUnitStatusHistory as ush 
     on ud.UnitID = ush.UnitID 
where s.[Value] in('ACNX4853' 
       ,'ACRA3259' 
       ,'AY1712466664' 
       ) 
order by ush.[Time] desc; 

感謝您的回答..提前致謝。作爲連接

+1

強調檢索[不良習慣踢:使用舊樣式的JOIN( http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 舊式*逗號分隔的表格列表* style被替換爲ANSI - ** 92 ** SQL標準中的* proper * ANSI'JOIN'語法(** 25 years ** ago),並且不鼓勵使用它 –

+0

*您的意思是* TOP 1多個記錄*?你如何分組數據?你只需要一個記錄哪個結果?請更具體一些,理想情況下包括您正在獲得的結果樣本以及您試圖實現的輸出結果。 – iamdave

+0

現在單個記錄檢索多個輸出。因此,我想根據LastUpdate列和[按LastUpdate列desc排序]檢索最新記錄, – ghaty

回答

0

腳本顯示輸出,我只希望這是在綠色[爲了通過LASTUPDATE列降序]

Script Result