为什么我找不到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 序 号 最 大 的 记 录
此问题由玄先记等回答。
| |
|
|
| |
|
|