以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]有关SQL查询表问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21174) |
||||
-- 作者:ttzb2000 -- 发布时间:2012/7/4 11:01:00 -- [求助]有关SQL查询表问题 见附件,如何当一台设备有两次或以上次检定时,查询出来只显示最后一次检定数据。
|
||||
-- 作者:狐狸爸爸 -- 发布时间: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大神赐教 |