CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  SQL Anywhere Studio

一句sql

楼主fangss()2002-05-21 13:18:19 在 其他数据库开发 / SQL Anywhere Studio 提问

有一表如下:  
  fld1 fld2 begin_date end_date  
  1 a 20020101 20050101  
  2 a 20020201 20060101  
  3 b 20010101 20020101  
  4 b 20020101 20050101  
   
  要求选出相同fld2的最晚begin_date的记录(全部字段)  
  结果:  
  fld1 fld2 begin_date end_date  
  2 a 20020201 20060101  
  4 b 20020101 20050101  
  //  
  但用下面的语句不能选出所有字段  
  select   fld2,max(begin_date)   from   tab   group   by   fld2;  
   
  在oracle中好象可以用  
  select   fld1,fld2,max(begin_date),end_date   from   tab    
  where   (fld2,begin_date)   in    
  select   fld2,max(begin_date)   from   tab   group   by   fld2  
   
  但在sqlserver,sqlanywhere中就不对了,请大家帮忙~~  
  或者给一下其它数据库的写法也行  
  问题点数:20、回复次数:2Top

1 楼KingSunSha(弱水三千)回复于 2002-05-21 13:33:03 得分 20

select   fld1,fld2,max(begin_date),end_date   from   tab    
  where   (fld2,begin_date)   in    
  select   fld2,max(begin_date)   from   tab   group   by   fld2  
  在任何数据库中都无法执行,基本语法错误,必须在第一个select中去掉max  
   
  我在另外一个帖子回了比较好的一种写法,但当时没注意到你的sql根本就是错了Top

2 楼fangss()回复于 2002-05-21 14:01:30 得分 0

呵呵,是错了!  
  那个贴子我也看到了,多谢弱水兄Top

相关问题

  • 一句sql
  • 一句sql
  • 一句sql
  • 求一句SQL。
  • 求一句SQL
  • 求一句SQL
  • 求一句SQL
  • 一SQL语句?
  • 一句 sql !
  • 求一句sql

关键词

  • date
  • fld2
  • fld
  • begin
  • max
  • group
  • from tab
  • select

得分解答快速导航

  • 帖主:fangss
  • KingSunSha

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo