这些SQL语句如何写

这些SQL语句如何写 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061215171559287.html
我用的access2000,我建了个表名为:JLGL,表里有个字段:Jan(数字类型)  
  问题1:现在我想获得这个字段的左边4个不重复的数字我是这样写的:  
  select   a.Jan   from   (select   distinct   Left(Jan,4)   from   JLGL)   a     可程序说是错的,请问这个语句怎么写?  
  问题2:我想查询Jan字段等于20068或者等于20069的所以数据,所以我就这样写了个sql语句:select   *   from   JLGL   where   Jan=20068   or   Jan=20069       可程序也说这个是错的,请问该怎么写?  
  问题3:请问如何不通过条件查询而直接获得刚插入表里的数据,谢谢

问题2:select   *   from   JLGL   where   Jan='20068'   or   Jan='20069'没有加引号

1.获得这个字段的左边4个不重复的数字  
  select   jan   from   jlgl   where   left(jan,4)   not   in   (SELECT   Left(jan,4)   AS   jan1   FROM   jlgl   GROUP   BY   Left(jan,4)   HAVING   Count(*)>1)  
  2.应该没错(数字类型不用引号),你可在access中试一下  
  3.好像不能  
 

问题1:  
  你的第一个语句肯定是要报错的啊,  
  select   a.Jan   from   (select   distinct   Left(Jan,4)   as   Jan   from   JLGL)   a    
  这样应该就可以,也就是在Left(Jan,4)后面加上别名。  
  问题2:  
  应该是没有错  
  问题3:  
  好像不可以  
 

问题3,那是不可能的。

不过,如果你的表里有表示序列的字段,就可以的  
  select   *   from   table   order   by   [序列字段]   desc  
  第一条数据就是最新加入的。

问题3sqlserver好像有个物理rowid

在access中select   *   from   JLBZPT   where   JDZQ>0   and   GLZT='ZY'   and   len(SYBM)>0   and   len(JDBM)>0   and   left(YXRQ,6)='"+year+"'   and   JDJG='MJ'该如何写才正确

问题2正确的是:select   *   from   JLGL   where   [Jan]='20068'   or   [Jan]='20069'

问题3:游标应该是指向刚插入的记录吧(前提:插入数据后还没有做任何操作)

posted on 2009-05-12 16:00  delphi2007  阅读(288)  评论(0编辑  收藏  举报