update gz_jbqk set (c27,c40,c41,c42,c43)=(select n7,n3,n4,n5,n6 from (select n1,n7,n3,n4,n5,n6 from gz_kq,gz_jbqk where gz_jbqk.c1=gz_kq.n1 and to_char(gz_jbqk.d4,''yyyy-mm'')=gz_kq.n8 union select gz_jbqk.c1 as n1,0 as n7,0 as n3,0 as n4,0 as n5,0 as n6 from gz_jbqk where gz_jbqk.c1 not in (select n1 from gz_kq where to_char(gz_jbqk.d4,''yyyy-mm'')=gz_kq.n8)) b where b.n1=gz_jbqk.c1)
为什么更新不上?
表1:
c1 c27 c40 c41 c42 c43 d4
400002 2005-01-01
400003 2005-01-01
表2:
n1 n2 n3 n4 n5 n6 n7 n8
400002 1 2 3 4 0.48 2005-01
想要的结果是:
c1 c27 c40 c41 c42 c43 d4
400002 0.48 1 2 3 4 2005-01-01
400003 0 0 0 0 0 2005-01-01
以前这个语句我用过,可以的,但现在的结果是:
c1 c27 c40 c41 c42 c43 d4
400002 2005-01-01
400003 0 0 0 0 0 2005-01-01谢谢各位了
为什么更新不上?
表1:
c1 c27 c40 c41 c42 c43 d4
400002 2005-01-01
400003 2005-01-01
表2:
n1 n2 n3 n4 n5 n6 n7 n8
400002 1 2 3 4 0.48 2005-01
想要的结果是:
c1 c27 c40 c41 c42 c43 d4
400002 0.48 1 2 3 4 2005-01-01
400003 0 0 0 0 0 2005-01-01
以前这个语句我用过,可以的,但现在的结果是:
c1 c27 c40 c41 c42 c43 d4
400002 2005-01-01
400003 0 0 0 0 0 2005-01-01谢谢各位了
n1 n7 n3 n4 n5 n6
400002 0.48 1 2 3 4
400003 0 0 0 0 0
而:
update gz_jbqk set (c27,c40,c41,c42,c43)=(select n7,n3,n4,n5,n6 from yytt where yytt.n1=gz_jbqk.c1);
能更新,但结果是:
c1 c27 c40 c41 c42 c43
400002
400003 0 0 0 0 0 难道这句有错吗?
大家来领分,下午上班给分,我在电力局上班.