left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id )
where t.fgs = 3;
这个是我自己写的,但是运行不了,不知道怎么写求大神帮忙
select d.acpt_org_name from evt_iom_cust_reply_record_day t
left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id ;
这个是可以查到值的
但是 怎么让这个值更新到 tmp_list_record 这个表中 ,且根据 ord_code = ord_no ,iom_ord_id = iom_ord_id
select * from tmp_list_record;
13 个解决方案
#1
顶一下下。。。
#2
你要更新的表tmp_list_record 和你查询的一堆表通过什么字段关联?
#3
你的查询出来是多行,是不能这么更新到单行中的。
update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
where t.fgs = 3;
update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
where t.fgs = 3;
#4
那要怎么更新进去,不可能一个个更新的,太多了
#5
你没有和tmp_list_record做关联啊怎么可能更新进去呢
#6
1、更新表 tmp_list_record t 的别名和 查询表 evt_iom_cust_reply_record_day t 的别名不要一致,然后在查询语句中建立 更新表和查询表的关联;
2、更新表 tmp_list_record t where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;
2、更新表 tmp_list_record t where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;
#7
多行数据怎么能更新到单行里面呢
#8
tmp_list_record和evt_iom_cust_reply_record_day未关联,肯定会造成多行对单行错误,你先搞清楚两个表如何关联。
#9
比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE A.ID = B.AID) --A和B的关系
WHERE EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID); ---A和B能关联上的数据更新
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE A.ID = B.AID) --A和B的关系
WHERE EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID); ---A和B能关联上的数据更新
#10
这个已经很直观了,楼主不妨看看。
#11
还要用第二个表和第三个表关联,然后就报错了
#12
怎么解决
#13
等号后面子查询返回了多个值,提示很明显了
#1
顶一下下。。。
#2
你要更新的表tmp_list_record 和你查询的一堆表通过什么字段关联?
#3
你的查询出来是多行,是不能这么更新到单行中的。
update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
where t.fgs = 3;
update tmp_list_record t1 set t.acpt_org_name = (select d.acpt_org_name from evt_iom_cust_reply_record_day t
left join evt_iom_ord_day@ossbc_dev_nj d on t.ord_code=d.ord_no
left join evt_iom_wrk_ord_day@ossbc_dev_nj w on d.iom_ord_id=w.iom_ord_id
where t1.ord_code = t. ord_code)
where t.fgs = 3;
#4
那要怎么更新进去,不可能一个个更新的,太多了
#5
你没有和tmp_list_record做关联啊怎么可能更新进去呢
#6
1、更新表 tmp_list_record t 的别名和 查询表 evt_iom_cust_reply_record_day t 的别名不要一致,然后在查询语句中建立 更新表和查询表的关联;
2、更新表 tmp_list_record t where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;
2、更新表 tmp_list_record t where条件中最好加入更新范围语句,不然会将 更新表中原有的数据更新为空;
#7
多行数据怎么能更新到单行里面呢
#8
tmp_list_record和evt_iom_cust_reply_record_day未关联,肯定会造成多行对单行错误,你先搞清楚两个表如何关联。
#9
比如表A和B,两个表关联通过A.id=B.aid,更新B的name到A的name
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE A.ID = B.AID) --A和B的关系
WHERE EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID); ---A和B能关联上的数据更新
UPDATE A SET A.NAME = (SELECT B.NAME FROM B WHERE A.ID = B.AID) --A和B的关系
WHERE EXISTS (SELECT 1 FROM B WHRE A.ID = B.AID); ---A和B能关联上的数据更新
#10
这个已经很直观了,楼主不妨看看。
#11
还要用第二个表和第三个表关联,然后就报错了
#12
怎么解决
#13
等号后面子查询返回了多个值,提示很明显了