热情软件屋

 

为什么我找不到clbh相同的xh最大的记录


编号:QA003765
建立日期: 2001年1月15日 最后修改日期:2001年1月15日
所属类别:

飞天仙子:
    操作系统:windows
    编程工具:pb
    问题:有一个怪问题,在数据窗口里设置一检索参数 clbh string 型
    sql为 SELECT "mxb"."clbh", //材料编号
     "clda"."mc",
     "clda"."gg",
     "clda"."dw",
     "mxb"."jcsl",
     "mxb"."jcdj",
     "mxb"."jcje",
     "mxb"."spsl",
     "mxb"."spje"
    
     FROM "clda",
     "mxb"
     WHERE ( "mxb"."clbh" = "clda"."bh" ) and
     ( ( "mxb"."clbh" like :clbh ) AND
     (mxb.xh = (select max(xh) from mxb where mxb.clbh=:clbh)) ) //找出编号为:clbh 序号最大的记录
    目的是检索出明细表(mxb)中最大序号(xh)的、指定的材料编号(clbh)的记录,在datawondows下可以实现此功能,即按 retrieve时可以达到目的,(找到clbh相同的xh最大的记录(一条))。可在windows 下却检测不到记录 在window 下设置如下string str
    if trim(ddlb_1.text)<>""then
     str=trim(ddlb_1.text)+"%"
    else
     str='%'
    end if
    dw_1.retrieve(str)
    当把上面where 的最后 一句去掉(mxb.xh = (select max(xh) from mxb where mxb.clbh=:clbh)) )
    可在windows 下检测到clbh相同的所有记录,
    为什么我找不到clbh相同的xh最大的记录(一条))。请您解忧。谢谢
    水平: 刚入门

回答:

    玄先记的意见:
    将最后一句 (mxb.xh = (select max(xh) from mxb where mxb.clbh=:clbh)) ) 改为:
    (mxb.xh = (select max(xh) from mxb where mxb.clbh like :clbh)) )
    因为:在window下,你已将检索参数两边加上了‘%',所以利用‘=’不可能检索出来。
    小伟的意见:
     sql为 SELECT "mxb"."clbh", //材 料 编 号
     "clda"."mc",
     "clda"."gg",
     "clda"."dw",
     "mxb"."jcsl",
     "mxb"."jcdj",
     "mxb"."jcje",
     "mxb"."spsl",
     "mxb"."spje"
    
     FROM "clda",
     "mxb"
     WHERE ( "mxb"."clbh" = "clda"."bh" ) and
     ( ( "mxb"."clbh" like :clbh ) AND //此句
    //我认为这句是多余的,因为下面一句中有 clbh = :clbh
    //把这句删除,下面一句改为 clbh like :clbh 不知是否有用,
    //我是个初学者,不知是否回答的正确。
     (mxb.xh = (select max(xh) from mxb where mxb.clbh=:clbh)) ) //找 出 编 号 为 :clbh 序 号 最 大 的 记 录

此问题由玄先记等回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio