收录日期:2020/11/30 16:10:54 时间:2016/07/06 09:02:44 标签:疑难问题
一个表TABLE,有字段A,B,C,D,E,F
查询的要求是:
按照A进行分组,满足字段B的值等于2,并且C为最大,同时还要显示所有字段的内容。
例如:
      A             B             C          D          E          F 
      1             1             1                                              
      1             2             3           
      1             3             4                                       
      2             2             2 
      2             2             3
      2             2             4

显示结果为:
      A             B             C          D          E          F                                             
      1             2             3                                             
      2             2             4

select * from [table] a where not exists(select 1 from [table] where A=a.a and b=a.b and c>a.c) and B=2
select A,B,MAX(C)AS C FROM TABLE1 WHERE B=2 GROUP BY A,B
declare @t table(A int,           B  int,           C     int,     D  int,        E  int     ,    F int) 
 insert @t select      1   ,         1   ,         1  ,null,null,null                                            
 insert @t select        1 ,           2 ,           3    ,null,null,null         
  insert @t select       1 ,           3  ,          4    ,null,null,null                                      
  insert @t select       2 ,           2   ,         2 ,null,null,null    
 insert @t select        2 ,           2   ,         3 ,null,null,null    
 insert @t select        2 ,           2   ,         4 ,null,null,null    
select * from (select * from @t where B=2) t where not exists(select * from(select * from @t where B=2) s where s.a=t.a and s.c>t.c )
/*
A           B           C           D           E           F           
----------- ----------- ----------- ----------- ----------- ----------- 
1           2           3           NULL        NULL        NULL
2           2           4           NULL        NULL        NULL

*/
select a,max(b) as b,max(c) as c,max(d) as d,max(e) as e,max(f) as f from 表名
where b=2
group by a
引用 1 楼 pt1314917 的回复:
SQL codeselect*from[table]awherenotexists(select1from[table]whereA=a.aandb=a.bandc>a.c)andB=2

不错
1楼和3楼正解,谢谢各位
失误。。刚刚仔细检查一下,1楼的这种方式还是有问题,这种等于说是按照A和B在分组了,还是不完全正确。。3楼的才是正解。
有没有办法重新结帐啊。。。呵呵

.net2003 怎么在DataGrid中添加空白行,然后添加数据保存,行中有TextBox控件 谁知道 VB6.0→VB.NET 的转换工具 SqlConnection open失败 急!!!机器经常出现连接受限制或无连接. 关于数据库的查询问题 在vfp中如何用prg生成scx 怎么从 inputstream 得到 String 如何收到网卡已经能够接收数据的中断信号呢??? getElementsByTagName的问题 ajaxpro应用问题 iframe图片显示问题 谁有 脏话 数据库,用于网页过滤的。请给我一份,万分感谢~ 怎样在点击了窗口关闭按钮X,弹出提示对话框“是否真关闭之类的” 在线急等!谢谢!如何使用httpservletrequestwrapper 复制粘贴,从winform到word 急!高分在线求,InitializeLpkHooks的定义以及调用示例,顶也加分 有个疑问兼散分,关于winform的前途 在myeclipse里读出 iReport作的.jrxml pdf形式 发生错误 在微软下了个ajax2.0控件,不太会用,请问谁能教一下? 如何查询表A表 9-20之间的记录 怎么将splitContainer中的panel设置为上下放置的? 请教 多步OLE DB 操作产生错误 没有工作被完成 急~~~~~~ 自己做的网站,大家来提点见议 请问如何判断需要使用复合索引还是为每个列单独建立索引? 有关即时通讯中好友列表的获得问题!?!?!?!?!?!?!? php 怎样记录一个页面里的连接 被点击了多少次 母版页和框架,不解中 谁知道 VB6.0→VB.NET 的转换工具 各位大侠帮帮忙,有一条sql语句总出现ora-00936,不明白怎么回事 使用Mscomm控件进行串口通讯出现怪问题!!