我有一个在移动电话上运行的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