注册 登录
编程论坛 VFP论坛

提取三表数据

fdqzy 发布于 2020-07-15 17:38, 1774 次点击
将3个子表的数据提取到总表相应的字段中,见附件,谢谢!!!
只有本站会员才能查看附件,请 登录
9 回复
#2
吹水佬2020-07-15 20:47
USE ss IN 0 ALIAS ss
fun(0)
fun(1)
fun(2)
SELECT * FROM ss
USE IN "ss"
RETURN

FUNCTION fun(n)
    cn = TRANSFORM(n)
    USE ("s"+cn) IN 0 ALIAS sn
    SELECT sn
    SET RELATION TO jnh INTO "ss"
    REPLACE ALL ;
        ("ss.M"+cn+"_1") WITH EVALUATE("sn.M"+cn+"_1"),;
        ("ss.M"+cn+"_2") WITH EVALUATE("sn.M"+cn+"_2"),;
        ("ss.M"+cn+"_3") WITH EVALUATE("sn.M"+cn+"_3")
    SET RELATION TO
    USE IN "sn"
ENDFUNC
#3
吹水佬2020-07-16 07:39
UPDATE ss SET ss.M0_1=s0.M0_1, ss.M0_2=s0.M0_2, ss.M0_3=s0.M0_3 from s0 WHERE ss.jnh==s0.jnh
UPDATE ss SET ss.M1_1=s1.M1_1, ss.M1_2=s1.M1_2, ss.M1_3=s1.M1_3 from s1 WHERE ss.jnh==s1.jnh
UPDATE ss SET ss.M2_1=s2.M2_1, ss.M2_2=s2.M2_2, ss.M2_3=s2.M2_3 from s2 WHERE ss.jnh==s2.jnh
SELECT * FROM ss
#4
fdqzy2020-07-16 08:50
谢谢!
#5
fdqzy2020-07-16 08:54
回复 3楼 吹水佬
UPDATE 这个真好,未见过。
#6
fdqzy2020-07-16 09:03
回复 2楼 吹水佬
版主:
只有本站会员才能查看附件,请 登录
#7
fdqzy2020-07-16 09:04
以下是引用吹水佬在2020-7-15 20:47:33的发言:

USE ss IN 0 ALIAS ss
fun(0)
fun(1)
fun(2)
SELECT * FROM ss
USE IN "ss"
RETURN

FUNCTION fun(n)
    cn = TRANSFORM(n)
    USE ("s"+cn) IN 0 ALIAS sn
    SELECT sn
    SET RELATION TO jnh INTO "ss"
    REPLACE ALL ;
        ("ss.M"+cn+"_1") WITH EVALUATE("sn.M"+cn+"_1"),;
        ("ss.M"+cn+"_2") WITH EVALUATE("sn.M"+cn+"_2"),;
        ("ss.M"+cn+"_3") WITH EVALUATE("sn.M"+cn+"_3")
    SET RELATION TO
    USE IN "sn"
ENDFUNC

只有本站会员才能查看附件,请 登录
#8
sdta2020-07-16 09:09
代码放在表单中了吧
表单中合适的事件中
do xxx.prg
即可
#9
fdqzy2020-07-18 09:26
以下是引用sdta在2020-7-16 09:09:20的发言:

代码放在表单中了吧
表单中合适的事件中
do xxx.prg
即可

可以了,谢谢!
#10
foxprosue2021-02-25 08:24
SELECT * from s0 LEFT JOIN s1 ON s0.jnh=s1.jnh LEFT JOIN s2 ON s0.jnh=s2.jnh
1