日期:2014-05-19  浏览次数:20638 次

请教一SQL语句写法,找出其最大日期的记录,内详.
字段:ID\部门\车站\设备名称\设备型号\设备编号\检查人\检查日期
ID为自动编号关键字,部门\设备编号\检查日期可以确定唯一的记录(也就是说同一个部门,同一个设备编号在某一个检查日期只会存在一条记录).
比如现在我想找出该设备编号在最大的检查日期的数据,怎样写SQL语句会方便些.

------解决方案--------------------
只取一个设备的信息吗?
select top 1 * from 表 where 设备编号=XXXX order by 检查日期 desc
------解决方案--------------------
该设备编号?不管部门是否相同?

select * from tablename a
where not exists(select 1 from tablename where 设备编号 = a.设备编号 and 检查日期> a.检查日期
)

如果是对同一部门的设备编号求最大检查日期,则这样写:

select * from tablename a
where not exists(select 1 from tablename
where 部门 = a.部门 and 设备编号 = a.设备编号 and 检查日期> a.检查日期
)


------解决方案--------------------
SELECT ID,部门,车站,设备名称,设备型号,设备编号,检查人,max(检查日期) FROM EquipInfo
GROUP BY 部门, 设备编号

明显编译不过