以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]有关SQL查询表问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=21174)

--  作者:ttzb2000
--  发布时间:2012/7/4 11:01:00
--  [求助]有关SQL查询表问题

见附件,如何当一台设备有两次或以上次检定时,查询出来只显示最后一次检定数据。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询.table


--  作者:狐狸爸爸
--  发布时间:2012/7/4 12:35:00
--  
Select {设备清单}.仪器编号,{设备清单}.仪器名称,制造商,型号规格,出厂编号,精度等级,使用部门,保管人,购买日期,证书编号,有效期至  From {设备清单}  Inner Join (Select a.仪器编号,证书编号,有效期至,b.检定日期  From {检定数据} a  Inner Join (Select 仪器编号,Max(检定日期) As 检定日期 From {检定数据} Group By 仪器编号) b  On a.仪器编号 = b.仪器编号) c On {设备清单}.仪器编号 = c.仪器编号
[此贴子已经被作者于2012-7-4 12:36:06编辑过]

--  作者:don
--  发布时间:2012/7/4 12:47:00
--  
select a.*,证书编号,有效期至 From{设备清单} a INNER JOIN (select   仪器编号,Max(证书编号)  as 证书编号 ,Max(有效期至) as  有效期至 From{检定数据} group by 仪器编号) b ON a.仪器编号 = b.仪器编号
--  作者:ttzb2000
--  发布时间:2012/7/4 13:11:00
--  

可是这样查询后没有检定数据的CS002设备就不显示了。如何让没有检定数据的设备出显示出来


--  作者:don
--  发布时间:2012/7/4 13:28:00
--  
select a.*,证书编号,有效期至 From{设备清单} a Left  JOIN (select  仪器编号,Max(证书编号)  as 证书编号 ,Max(有效期至) as  有效期至 From{检定数据} group by 仪器编号) b ON a.仪器编号 = b.仪器编号
--  作者:ttzb2000
--  发布时间:2012/7/4 13:50:00
--  

谢谢DON。。已经完成,那如果有效期超过今天了,如何让证书编号及有效期两项显示空白?

[此贴子已经被作者于2012-7-4 13:50:40编辑过]

--  作者:don
--  发布时间:2012/7/4 14:00:00
--  
留給您當個作業吧,記得已給你寫過代碼的
--  作者:狐狸爸爸
--  发布时间:2012/7/4 14:12:00
--  

学了一招


--  作者:ttzb2000
--  发布时间:2012/7/4 14:25:00
--  
之前DON大神教的是用窗口读取,那样能完成。这个还是无法搞定,希望DON大神赐教