两个表有ZKZMBH,LSH,SFZMHM,CARNO,都相同,但是不小心吧第一个表的CARNO给清空了,现在想做一条查询更新语句。
吧T表的查询出来的CARNO 放在E表的CARNO里面。。
备注:T表里面同一准考证号码可以能20条左右记录。
        E表里面同一准考证号码有一条或者两条的。。
请各位帮忙写一条sql。自己写的总是提示子查询返回多个值谢谢

解决方案 »

  1.   

    先确定T表中相同的ZKZMBH,LSH,SFZMHM只有一个CARNO。
    SELECT  ZKZMBH,LSH,SFZMHM,CARNO  FROM T GROUP BY ZKZMBH,LSH,SFZMHM HAVING COUNT(DISTINCT CARNO)>1;确定后再执行
    UPDATE E SET E.CARNO=(SELECT DISTINCT CARNO FROM T WHERE T.ZKZMBH=E.ZKZMBH AND T.LSH=E.LSH AND T.SFZMHM=E.SFZMHM) WHERE (ZKZMBH,LSH,SFZMHM) IN (SELECT ZKZMBH,LSH,SFZMHM FROM T);
      

  2.   

    搜下oracle关联更新
      

  3.   

    E表是成绩表,carno是车号,ZKZMBH是准考证编号,LSH是流水号KSCS是考试次数字段,学生如果考1次,就只有一条记录,考试次数为1,考两次有两条,考试次数为2,其他字段的信息都是相同的。。然后不不小心 update E set carno=null 了。所以想根据过程信息表T里面的学生对应的carno吧他查询插入进去。。但是E表就是因为有的是一条两条不确定写子查询提示返回多个值。
    T表是过程表,和E表ZKZMBH,LSH关联。T表一个准考证号码的人实时数据大概有20~~30条不等。但是ZKZMBH,LSH,CARNO 字段都是一样的,T表也有KSCS考试次数字段。。SELECT  ZKZMBH,lsh,CARNO FROM HIS_LK_UPLOADRECT t WHERE to_char(SJ,'yyyy-mm-dd')='2018-04-19' GROUP BY ZKZMBH,lsh,CARNO,可以查询到每个人的准考证,对应的车号,但是怎么写入到 E 表的 ZKZMBH里面,ZMZMBH可能有两条,可能有一条这样子。谢谢,大哥@!@
      

  4.   


    ——---------------------————————————————————————
    E表是成绩表,carno是车号,ZKZMBH是准考证编号,LSH是流水号,KSCS是考试次数字段,学生如果考1次,就只有一条记录,考试次数为1,考两次有两条,考试次数为2,其他字段的信息都是相同的。。然后不不小心 update E set carno=null 了。所以想根据过程信息表T里面的学生对应的carno吧他查询插入进去。。但是E表就是因为有的是一条两条不确定写子查询提示返回多个值。
    T表是过程表,和E表ZKZMBH,LSH关联。T表一个准考证号码的人实时数据大概有20~~30条不等。但是ZKZMBH,LSH,CARNO 字段都是一样的,T表也有KSCS考试次数字段。。SELECT  ZKZMBH,lsh,CARNO FROM HIS_LK_UPLOADRECT t WHERE to_char(SJ,'yyyy-mm-dd')='2018-04-19' GROUP BY ZKZMBH,lsh,CARNO,可以查询到每个人的准考证,对应的车号,但是怎么写入到 E 表的 CARNO 里面,ZkZMBH可能有两条,可能有一条这样子。谢谢,大哥@!@