从两张表中获取数据,一对多的关系。
SELECT ROW_NUMBER() OVER (ORDER BY INFO_DeviceOperationHistory.OprationTime ASC) AS XUHAO, dbo.View_SheBei.rowid, dbo.View_SheBei.BIMInfoName, dbo.View_SheBei.RowGuid, dbo.View_SheBei.区域名称, dbo.INFO_DeviceOperationHistory.OprationTime,
dbo.INFO_DeviceOperationHistory.OprationName, dbo.INFO_DeviceOperationHistory.BiminfoGuid
FROM dbo.View_SheBei LEFT OUTER JOIN
dbo.INFO_DeviceOperationHistory ON dbo.View_SheBei.RowGuid = dbo.INFO_DeviceOperationHistory.BiminfoGuid
ORDER BY dbo.INFO_DeviceOperationHistory.OprationTime
返回数据如下:
我只想获取最新的一条操作记录,即最下面那条。去重要根据唯一的字段,所以在视图中加了 ROW_NUMBER() OVER (ORDER BY INFO_DeviceOperationHistory.OprationTime ASC) AS XUHAO
,自动生成唯一标识。这点非常重要。因为接下来的查询语句,就要依据该字段去重。
去重语句如下:
select BIMInfoName,区域名称,OprationTime,OprationName from View_EquipOpe_App where XUHAO in (select Max(XUHAO) from View_EquipOpe_App group by rowguid) order by View_EquipOpe_App.OprationTime,区域名称 desc
返回的结果如下: