INSERT INTO A(DJRQ) SELECT DJRQ FROM B WHERE JWH='xx村'

解决方案 »

  1.   

    UPDATE A SET DJRQ=B.DJRQ FROM A
      JOIN B ON A.ID=B.ID AND B.JWH='xx村'
      

  2.   

    UPDATE A SET DJRQ=(SELECT DJRQ FROM B WHERE B.ID=A.ID  AND B.JWH='xx村')
      

  3.   

    UPDATE A SET DJRQ=(SELECT DJRQ FROM B WHERE B.ID=A.ID  AND B.JWH='xx村') where a.id in (SELECT ID from B)
      

  4.   

    楼上的,我的第2种写法在SQL SERVER里可以通过,ORACLE怎么写,就是不用子查询,用连接~
      

  5.   

    帮忙看看我这个语句为什么不行,谢谢。update A a set a.lsrq=(select b.lsrq from B b where a.id=b.id and b.jwh='xxx村' and b.djrq>=to_date('2006-01-01','yyyy-mm-dd') and b.djrq<to_date('2006-06-28','yyyy-mm-dd') and b.lx='201)' where a.id in (select c.id from B c where c.jwh='xxx村' and c.djrq>=to_date('2006-01-01','yyyy-mm-dd') and c.djrq<to_date('2006-06-28','yyyy-mm-dd') and c.lx='201')
      

  6.   

    错误提示:single-row subquery returns more than one row
      

  7.   

    UPDATE t_A SET Djrq= 
    (
        SELECT djrq FROM t_B WHERE t_A.ID = T_B.ID 
        WHERE ROWNUM = 1 
    )
    WHERE t_A.ID IN 
    (
        SELECT ID FROM t_B WHERE jwh='XX村'
    )
      

  8.   

    根均条件
    a.id=b.id and b.jwh='xxx村' and b.djrq>=to_date('2006-01-01','yyyy-mm-dd') and b.djrq<to_date('2006-06-28','yyyy-mm-dd') and b.lx='201'
    确定的是a表的一条记录对应b表的多条记录,所以出现single-row subquery returns more than one row错误楼主需要确定一下更新的逻辑是否有问题
      

  9.   

    UPDATE A SET DJRQ=(SELECT DJRQ FROM B WHERE B.ID=A.ID  AND B.JWH='xx村' and rownum=1) where a.id in (SELECT ID from B)是不是用ID来关联的啊?如果是就用上面的sql来更新!