请教SQL 语句怎么写?

[复制链接]
查看11 | 回复9 | 2005-7-16 18:49:11 | 显示全部楼层 |阅读模式
Table Name: T_history
SN
RetCNT Fail Code
seriala
0
F1001
seriala
1
F1002
seriala
2
F1003
seriala
3
F1543
seriala
4
F4943


serialb
0
F8383
serialb
1
F398393
serialb
2
F9393
serialb
3
F1003
serialb
4
F3495
serialb
5
F3939
serialb
6
F33934
怎么写SQL 语句使结果显示每一个SN中Retcnt最大的记录[/COLOR]
例如为:
SN
RetCNT Fail Code
seriala
4
F4943
serialb
6
F33934
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
select a.*
from test a, test b
where a.sn=b.sn and a.RetCnt > b.RetCnt
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
select v2.a,v2.b,v2.c
from (select SN a,max(RetCNT) b from T_history
group by SN) v1,
(select SN a,RetCNT b,Fail_Code c from T_history
) v2
where v1.a=v2.a and
v1.b=v2.b
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
最初由 xzh2000 发布
[B]select a.*
from test a, test b
where a.sn=b.sn and a.RetCnt > b.RetCnt [/B]

如果sn相同有多条的话,这样的话,结果照样会出现sn相同的多条记录!
sn相同不超来两条记录的话,可以!
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
最初由 greennut1977 发布
[B]select v2.a,v2.b,v2.c
from (select SN a,max(RetCNT) b from T_history
group by SN) v1,
(select SN a,RetCNT b,Fail_Code c from T_history
) v2
where v1.a=v2.a and
v1.b=v2.b [/B]

可以,我也是想到这条语句
是否还有别的办法?期待...
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
不行,会出现
seriala
0
F1001
seriala
1
F1002
serialb
0
F8383
serialb
1
F398393
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
最初由 pingshx 发布
[B]
如果sn相同有多条的话,这样的话,结果照样会出现sn相同的多条记录!
sn相同不超来两条记录的话,可以! [/B]



谢谢分析明白了
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
用分析函数查询很容易解决,查一查相关资料吧
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
如果每个SN,只需要显示一条Retcnt 最大的记录,可以这样:
SELECT SN, RetCNT, Fail, Code FROM (
SELECT SN, RetCNT, Fail, Code, RANK() OVER (PARTITION BY SN ORDER BY RetCNT DESC) rn FROMT_history )
WHERE rn = 1;
回复

使用道具 举报

千问 | 2005-7-16 18:49:11 | 显示全部楼层
select * from test a, (select sn,max(RetCnt) as RetCnt from test group by sn) b
where a.sn=b.sn and a.RetCnt=b.RetCnt
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行