VFP中select SQL中如何使用deleted()?

高舒林 2012-03-08 04:32:11
百思不得其解:
SELECT Gonghuo.htbh, Yw.xmmc, Kehu.khmc, Gonghuo.sxrq, Gonghuo.htje,;
Gonghuo.sjje, Gonghuo.htghrq, Gonghuo.sjghrq, Rsstrs.xm, Gonghuo.fkff,;
Gonghuo.khbh, Gonghuo.xmbh, Yw.xiaosbh, Gonghuo.zhibdq, ;
IIF(DELETED(),.T.,.F.) as scbj;
FROM wanglai!gonghuo LEFT OUTER JOIN wanglai!kehu ;
ON Gonghuo.khbh = Kehu.khbh ;
LEFT OUTER JOIN wanglai!yw ;
ON Gonghuo.xmbh = Yw.xmbh ;
LEFT OUTER JOIN wanglai!rsstrs ;
ON Yw.xiaosbh = Rsstrs.bh ;
WHERE &tj;
ORDER BY Gonghuo.sxrq, Yw.xmmc ;
INTO CURSOR gh_linshi
在生成的临时表中,凡gonghuo中带删除标记的记录的scbj为.T.,未带删除标记的记录scbj为.F.
但上述语句执行后,所有语句的scbj均为.F.
我将deleted()改为deleted('gonghuo'),这样一来,如果gonghuo中有一条记录带删除标记,则临时表
中所有记录的scbj均为.T.,否则均为.F.
请高手帮忙看一下,谢谢。
...全文
242 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
高舒林 2012-03-08
  • 打赏
  • 举报
回复
4楼的办法好。谢谢。我刚才采用了一个笨办法,就是执行了一个scan循环,检查gonghuo的每一条记录,如果有删除标记,就在gh_linshi中找到对应记录,用replace将scbj改为.T.,呵呵,这样效率可能会比较慢。
十豆三 2012-03-08
  • 打赏
  • 举报
回复
Select *,Iif(Deleted(),.T.,.F.) As scbj Into Cursor gonghuo1 From wanglai!gonghuo

Select Gonghuo1.htbh, Yw.xmmc, Kehu.khmc, Gonghuo1.sxrq, Gonghuo1.htje,;
Gonghuo1.sjje, Gonghuo1.htghrq, Gonghuo1.sjghrq, Rsstrs.xm, Gonghuo1.fkff,;
Gonghuo1.khbh, Gonghuo1.xmbh, Yw.xiaosbh, Gonghuo1.zhibdq,Gonghuo1.scbj ;
From gonghuo1 Left Outer Join wanglai!kehu ;
On Gonghuo1.khbh = Kehu.khbh ;
Left Outer Join wanglai!yw ;
On Gonghuo1.xmbh = Yw.xmbh ;
Left Outer Join wanglai!rsstrs ;
On Yw.xiaosbh = Rsstrs.bh ;
Where &tj;
Order By Gonghuo1.sxrq, Yw.xmmc ;
Into Cursor gh_linshi
高舒林 2012-03-08
  • 打赏
  • 举报
回复
问题不在这里。我觉得问题应该在select语句不知道是判断哪个表的记录删除。
lygcw9602 2012-03-08
  • 打赏
  • 举报
回复
IIF(DELETED(),.T.,.F.)
改成
IIF(DELETED(),.T.,"×")
lygcw9602 2012-03-08
  • 打赏
  • 举报
回复
IIF(DELETED(),.T.,.F.)
这是错误的

2,722

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧