两表如何合并?

yidunzhi 2017-12-06 10:00:03
用的VF6.0

a2为主表,a1为待合并表,a1中有的姓名而a2中无的,插入a2中,签到1显示无,签到2合并上去。a1中和a2中都有的姓名 ,合并到一起,并且签到情况也合并一起。
...全文
813 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
十豆三 2017-12-08
  • 打赏
  • 举报
回复
第1行;号前少了,号 不用抄,复制就行。
lygcw9602 2017-12-07
  • 打赏
  • 举报
回复
引用 9 楼 yidunzhi 的回复:
[quote=引用 8 楼 lygcw9602 的回复:] select nvl(表1.xm,表2.xm) xm,nvl(表1.sfz,表2.sfz) sfz,; iif(empty(qiandao1),"否",iif(isnull(qiandao1),"无此人","是"))+space(8) qiandao1,; iif(empty(qiandao2),"否",iif(isnull(qiandao2),"无此人","是"))+space(8) qiandao2 from 表1 full join 表2 on 表1.sfz=表2.sfz
[/quote] 代码都能抄错,佩服啊
yidunzhi 2017-12-07
  • 打赏
  • 举报
回复
引用 8 楼 lygcw9602 的回复:
select nvl(表1.xm,表2.xm) xm,nvl(表1.sfz,表2.sfz) sfz,;
iif(empty(qiandao1),"否",iif(isnull(qiandao1),"无此人","是"))+space(8) qiandao1,;
iif(empty(qiandao2),"否",iif(isnull(qiandao2),"无此人","是"))+space(8) qiandao2 from 表1 full join 表2 on 表1.sfz=表2.sfz

lygcw9602 2017-12-07
  • 打赏
  • 举报
回复
select nvl(表1.xm,表2.xm) xm,nvl(表1.sfz,表2.sfz) sfz,; iif(empty(qiandao1),"否",iif(isnull(qiandao1),"无此人","是"))+space(8) qiandao1,; iif(empty(qiandao2),"否",iif(isnull(qiandao2),"无此人","是"))+space(8) qiandao2 from 表1 full join 表2 on 表1.sfz=表2.sfz
都市夜猫 2017-12-07
  • 打赏
  • 举报
回复
EVL(A2.签到2, null)) -> IIF(Empty(A2.签到2), null, A2.签到2)
lygcw9602 2017-12-07
  • 打赏
  • 举报
回复
代码中少了逗号
yidunzhi 2017-12-07
  • 打赏
  • 举报
回复
引用 10 楼 lygcw9602 的回复:
[quote=引用 9 楼 yidunzhi 的回复:] [quote=引用 8 楼 lygcw9602 的回复:] select nvl(表1.xm,表2.xm) xm,nvl(表1.sfz,表2.sfz) sfz,; iif(empty(qiandao1),"否",iif(isnull(qiandao1),"无此人","是"))+space(8) qiandao1,; iif(empty(qiandao2),"否",iif(isnull(qiandao2),"无此人","是"))+space(8) qiandao2 from 表1 full join 表2 on 表1.sfz=表2.sfz
[/quote] 代码都能抄错,佩服啊[/quote] 重新抄了还是出错,请明示。
yidunzhi 2017-12-06
  • 打赏
  • 举报
回复
这是最终结果
yidunzhi 2017-12-06
  • 打赏
  • 举报
回复
结果图:
yidunzhi 2017-12-06
  • 打赏
  • 举报
回复
引用 3 楼 dkfdtf 的回复:
Nvl(A2.签到2, A1.签到2) as 签到2 改为 Nvl(Evl(A2.签到2,null), A1.签到2) as 签到2 即可
EVL,该函数从两个表达式中返回一个非空值。可以使用 EVL( ) 函数从两个表达式中返回一个适当的替代值来代替象假(.F.) 或 0 的空值。同样可以利用这个功能从不支持空值或不相关的计算或操作中移除空值。 VFP6.0中没有这个函数。我的要VF6.0
都市夜猫 2017-12-06
  • 打赏
  • 举报
回复
Nvl(A2.签到2, A1.签到2) as 签到2
改为
Nvl(Evl(A2.签到2,null), A1.签到2) as 签到2
即可
yidunzhi 2017-12-06
  • 打赏
  • 举报
回复
经过 vF6测试,相同字段 李节 的签到2 没有合并上。
都市夜猫 2017-12-06
  • 打赏
  • 举报
回复
Select Nvl(A2.学校, A1.学校) as 学校 ;
,Nvl(A2.姓名, A1.姓名) as 姓名 ;
,Nvl(A2.身份证, A1.身份证) as 身份证 ;
,Nvl(A2.签到1, '无') as 签到1 ;
,Nvl(A2.签到2, A1.签到2) as 签到2 ;
from A2 full join A1 on A2.姓名 == A1.姓名 ;
into dbf 新表

2,723

社区成员

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

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