请教一SQL语句写法,找出符合要求的记录,内详.
字段:ID\部门\车站\设备名称\设备型号\设备编号\检查人\检查日期
ID为自动编号关键字,部门\设备编号\检查日期可以确定唯一的记录(也就是说同一个部门,同一个设备编号在某一个检查日期只会存在一条记录).
比如现在我想找出该设备编号在最大的检查日期的数据,怎样写SQL语句会方便些.
EquipInfo表如下:
ID\部门\车站\设备名称\设备型号\设备编号\检查人\检查日期
1\第一车间\上海站\变压器\BYQ-1\012\张山\2001-1-1
2\第二车间\上海站\变压器\BYQ-3\011\里四\2002-3-4
3\第二车间\北京站\电阻\DZ-13\146\里四\2006-1-4
4\第二车间\湖动站\变压器\BYQ-3\011\小王\2004-6-4
5\第一车间\上海站\变压器\BYQ-1\012\万二\2003-10-2
6\第一车间\杭州站\电源组\DY-3\123\刘校庆\2003-9-12
7\第一车间\南昌站\电源组\DY-3\123\万发\2005-11-2
需要得到的结果是:
3\第二车间\北京站\电阻\DZ-13\146\里四\2006-1-4
4\第二车间\湖动站\变压器\BYQ-3\011\小王\2004-6-4
5\第一车间\上海站\变压器\BYQ-1\012\万二\2003-10-2
7\第一车间\南昌站\电源组\DY-3\123\万发\2005-11-2
我分成了两步骤解决,先生成临时表temp
SELECT 设备编号, max(检查日期) AS 最近检查日期 INTO temp
FROM status
GROUP BY 部门, 器材编号
第二
SELECT EquipInfo.*
FROM EquipInfo, temp
WHERE EquipInfo.部门=temp.部门 and EquipInfo.设备编号=temp.设备编号 and EquipInfo.检查日期=temp.最近检查日期
能否一步搞定???如何解决
------解决方案----------------------try
SELECT EquipInfo.*
FROM EquipInfo,
(SELECT 设备编号, max(检查日期) AS 最近检查日期 INTO temp
FROM status
GROUP BY 部门, 器材编号)
temp
WHERE EquipInfo.部门=temp.部门 and EquipInfo.设备编号=temp.设备编号 and EquipInfo.检查日期=temp.最近检查日期