使用SQL Server查询客户最近的30条记录



我有一个在移动电话上运行的scada应用程序,需要在为该站点打开警报屏幕时显示来自该站点的每个客户的最后30个警报。我试过使用一个视图,似乎工作,但现在没有带回新的记录。查询使用TOP函数。SQL Server数据库是运行在MS Azure上的虚拟数据库。

下面是SCADA应用程序中"grid"对象的查询。

ALARMHISTORYVIEW WHERE al_tag LIKE '{SoPump_ptr.label}%' 
ORDER BY al_event_time DESC

网格还允许我使用TOP(30)函数将结果限制为最后30条记录

下面是SQL Server中的ALARMHISTORYVIEW:

SELECT TOP (1000) 
Al_Event_Time, Al_Message, Al_Tag, Al_Start_Time, 
Al_Norm_Time, Al_Ack_Time, Al_Station
FROM            
dbo.ALARMHISTORY
WHERE        
(Al_Station LIKE '%Clearscada-A%')
GROUP BY 
Al_Event_Time, Al_Message, Al_Tag, Al_Start_Time, 
Al_Norm_Time, Al_Ack_Time, Al_Station

您可以使用这个查询

SELECT TOP 30 *
FROM [table_name]
ORDER BY [column_name] DESC