试一下:
update sq_jmtsdjb_ls tab1 set tab1.FLAG='2',tab1.SSJE=(select distinct tab2.ssje from zh_yhgd tab2
where tab1.yhh =tab2.yhh)
where tab1.yhh =tab2.yhh and tab1.tsrq='20040824';

解决方案 »

  1.   

    在第二个where里面的yhh是无效的,因为他所属的表的作用域只在括弧之内楼上的方法应该可以。
      

  2.   

    tsrq='20040824'  这是哪个表的列啊?
    写明白了估计就正确了
      

  3.   

    update sq_jmtsdjb_ls set FLAG='2',SSJE=(select ssje from zh_yhgd 
    where sq_jmtsdjb_ls.yhh =zh_yhgd.yhh)
    where tsrq='20040824';
    这样就可以了
      

  4.   

    update sq_jmtsdjb_ls A set FLAG='2',
                                SSJE=
                                     (select MIN(B.ssje) from zh_yhgd B
                                      where B.yhh = A.yhh)
    where A.yhh =B.yhh and A.tsrq='20040824';不知你zh_yhgd 中ssje是否唯一,看你tsrq是日期,如果tsrq是日期类型的话,A.tsrq='20040824'要改为TO_CHAR(A.tsrq,'YYYYMMDD') = '20040824'
      

  5.   

    写得好像有点罗索阿
    update sq_jmtsdjb_ls a set a.FLAG='2',SSJE=(select ssje from zh_yhgd b
    where a.yhh =b.yhh)
    where a.tsrq='20040824';
      

  6.   

    update sq_jmtsdjb_ls set FLAG='2',SSJE=(select ssje from zh_yhgd 
    where sq_jmtsdjb_ls.yhh =zh_yhgd.yhh)
    where exists(sq_jmtsdjb_ls.yhh =zh_yhgd.yhh 
                   AND zh_yhgd.tsrq='20040824');这个好像才可以吧?
    呵呵,开玩笑了,不过这样应该没问题的。
      

  7.   

    搞定了!是这样的!
    SQL> update sq_jmtsdjb_ls set(FLAG,SSJE)=(select '2',ssje from zh_yhgd
      2     where sq_jmtsdjb_ls.yhh =zh_yhgd.yhh)
      3     where sq_jmtsdjb_ls.yhh in (select yhh from zh_yhgd) and
      4           sq_jmtsdjb_ls.tsrq='20040824';谢谢大家!