CString szSQL,szTemp;
CADORecordset rst(&m_Database);
//select * from ( select * from T where A = a ) order by B desc where rownum<2;
//首先是选出这条记录,然后这条记录呢,就是rst
//然后我用GetFieldValue逐个取rst中的每个字段的值,放到我的变量中,应该就是这样了吧
try
{
szSQL.Format("select * from "
"(select * from ALARMAREANAMEID where SIMID='%s')"
"order by REQUESTINTIME desc where rownum < 2 and RESTORETIME is null",szSimID);这句话哪里有问题?》

解决方案 »

  1.   

    转换成sql语句大概就是这样,select * from(select * from tablename where SIMID='233456788') order by requestintime desc where rownum<2 and restoreTime is null;
      

  2.   

    我想得到表里面某个字段最大的那条记录我应该怎么写select语句?
      

  3.   

    现在sql语句写完了,可是找不到
    rst.GetFieldValue("USERCARID",szUseCarNumber);
    rst.GetFieldValue("AREAID",szArea);我的sql语句是select * from (select * from AREAUSERCARLOG where SIMID=13761456531) where REQUESTINTIME=(select max(REQUESTINTIME) from (select * from AREAUSERCARLOG where SIMID=13761456531));我的vc ado 提示这个错误
    提示这个错误(Description:对象关闭时,不允许操作。)
      

  4.   

    现在sql语句写完了,可是找不到
    rst.GetFieldValue("USERCARID",szUseCarNumber);
    rst.GetFieldValue("AREAID",szArea);我的sql语句是select * from (select * from AREAUSERCARLOG where SIMID=13761456531) where REQUESTINTIME=(select max(REQUESTINTIME) from (select * from AREAUSERCARLOG where SIMID=13761456531));我的vc ado 提示这个错误
    提示这个错误(Description:对象关闭时,不允许操作。)
      

  5.   

    查找 Max() 函数的用法。
      

  6.   

    select * from T where A = a
    a是什么?我觉得应该有单引号吧,sql执行的时候,先执行where,最后执行order by
    不知道你的rownum是不是自己定义的
    如果不是的话,那么rownum是指排序之前的rownum,因此不能得到最大纪录
    如果要得到最大纪录,直接用max应该就可以了吧
    当然如果要用rownum,可以参考一下这个
    oracle top n 问题 
                                            Oracle 不支持 TOP 关键字:不过这个好像并不十分严重,因为它提供了 rownum 这个隐式游标,可以实现与 TOP 类似的功能,如:  SELECT TOP 10 ... FROM WHERE ...  
    要写成 SELECT ... FROM ... WHERE ... AND rownum  <= 10  
    rownum 是记录序号(1,2,3...),但有一个比较麻烦的事情是:如果 SQL 语句中有 ORDER BY ... 排序的时候,rownum 居然是先“标号”后排序!这样,这个序号如果不加处理是不合乎使用需求的。 至于临时表,Oracle 的临时表和 SQL Server 的有很大不同。 根据这篇文章的介绍,可以如下分页: SELECT * FROM 
         ( 
         SELECT A.*, rownum r 
         FROM 
              ( 
              SELECT * 
              FROM Articles 
              ORDER BY PubTime DESC 
              ) A 
         WHERE rownum  <= PageUpperBound 
         ) B 
    WHERE r  > PageLowerBound;  
    其中蓝色部分可以改为任意的、需要的 SQL SELECT 语句,这点倒是挺方便的。