VF 3张表,第一张表与第二张表进行关联,然后统计第二张表的数据在第三张表中显示

xulang121 2014-12-05 09:02:06
第一张表x只有一个字段
ksh
0601
0603
0612
0613
0614
第二张表y 各个字段里的数据很多,只列出几个出来
ksh cj
0601001 100
0601023 50
0603002 40
0612123 80
0613222 55
0614552 33
第三张表z cjzj(成绩总计) 统计所有属于0601 的总成绩,0603的总成绩 0612的总成绩等等
ksh cjzj
0601
等等。。。
请大神帮助


...全文
223 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-12-05
  • 打赏
  • 举报
回复
VFP 默认是不精确匹配(SET ANSI OFF ),所以只需 select x.ksh, sum(y.cj) as cjzj from x, y where x.ksh=y.ksh group by 1 如果设置了精确匹配(SET ANSI ON )则 select x.ksh, sum(y.cj) as cjzj from x, y where x.ksh=LEFT(y.ksh,4) group by 1
lygcw9602 2014-12-05
  • 打赏
  • 举报
回复
Create Cursor 表X (Ksh C(4))
Insert Into 表X Values ("0601")
Insert Into 表X Values ("0603")
Insert Into 表X Values ("0612")
Insert Into 表X Values ("0613")
Insert Into 表X Values ("0614")

Create Cursor 表Y (Ksh C(7),Cj N(3))
Insert Into 表Y Values ("0601001",100)
Insert Into 表Y Values ("0601023",50)
Insert Into 表Y Values ("0603002",40)
Insert Into 表Y Values ("0612123",80)
Insert Into 表Y Values ("0613222",55)
Insert Into 表Y Values ("0614552",33)

Select A.Ksh,B.成绩 From 表X A Inner Join (Select Left(Ksh,4) Ksh,Sum(Cj) 成绩 From 表Y Group By 1) B On A.Ksh==B.Ksh Into Cursor 表Z
都市夜猫 2014-12-05
  • 打赏
  • 举报
回复
如果 x 中有,y 中没有的也要列出来,则: Select x.ksh, Sum(y.cj) as cjzj ; from x ; left join y on x.ksh == Left(y.ksh, 4) ; group by 1 into cursor z
都市夜猫 2014-12-05
  • 打赏
  • 举报
回复
Select Left(ksh,4) as ksh, Sum(cj) as cjzj from y group by 1 into cursor z browse

2,750

社区成员

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

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