字段: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.最近检查日期能否一步搞定???如何解决

解决方案 »

  1.   

    --trySELECT EquipInfo.*
    FROM EquipInfo, 
    (SELECT 设备编号, max(检查日期) AS 最近检查日期 INTO temp
    FROM status
    GROUP BY 部门, 器材编号)
    temp
    WHERE EquipInfo.部门=temp.部门 and EquipInfo.设备编号=temp.设备编号 and EquipInfo.检查日期=temp.最近检查日期
      

  2.   

    --錯了, 改改SELECT EquipInfo.*
    FROM EquipInfo, 
    (SELECT 设备编号, max(检查日期) AS 最近检查日期
    FROM status
    GROUP BY 部门, 器材编号)
    tmp
    WHERE EquipInfo.部门=tmp.部门 and EquipInfo.设备编号=tmp.设备编号 and EquipInfo.检查日期=tmp.最近检查日期
      

  3.   

    不好意思这里修改下我分成了两步骤解决,先生成临时表temp
    SELECT 设备编号, max(检查日期) AS 最近检查日期 INTO temp
    FROM EquipInfo
    GROUP BY 部门, 设备编号
    第二
    SELECT EquipInfo.*
    FROM EquipInfo, temp
    WHERE EquipInfo.部门=temp.部门 and EquipInfo.设备编号=temp.设备编号 and EquipInfo.检查日期=temp.最近检查日期
      

  4.   

    marco08(天道酬勤) 
    .
    .
    GROUP BY 部门, 器材编号)
    tmp
    WHERE EquipInfo.部门=tmp.部门 and EquipInfo
    .
    .
    中间加的tmp三个字母是么意思啊?