梧桐2
幼苗
共回答了22个问题采纳率:90.9% 举报
有点疑问啊.
deviceTemper表中有设备编码(devicebm与device devicebm对应),温度(temvalue),时间(gtime),主键id(tid)
现在想查询出某个站点最后一条输入数据的最大温度和最小温度
这个 deviceTemper表 只有一个 温度列啊.
如果是 最后一条输入数据,只有一条的话,那应该分不出 最大最小啊.
你是不是想查询 某个站点下面,所有设备 的 最后一条数据.
在多个设备的数据里面,找 最大与最小啊?
例如 站点 A,下面有 5个设备 A01,A02,A03,A04,A05
查询这5个设备的最后一条输入数据,然后在这5行里面,找个最大与最小?
1年前
追问
7
举报
梧桐2
WITH myCTE AS ( SELECT * FROM deviceTemper WHERE devicebm IN ( SELECT devicebm FROM device WHERE snum = '外部指定站点编号' ) ), newestCTE AS ( SELECT * FROM myCTE main WHERE NOT EXISTS ( SELECT 1 FROM myCTE sub WHERE main.devicebm = sub.devicebm AND main.gtime < sub.gtime ) ) SELECT MAX(temvalue) AS [最大温度], MIN(temvalue) AS [最小温度] FROM newestCTE; SQL Server 2005 以上版本的 没环境, 性能就不确定了......