sql数据库语言

来源:百度知道 编辑:UC知道 时间:2024/06/05 02:12:59
insert into tb_397_d_qdyxqk_rp
(fee,
ywbs,
skhs)
select fee,ywbs,hs
from tb_397_d_qdyxqk_rp m,
tb_397_d_qdskcz_rp n
where trim(m.channel_id)=n.busisit(+)
group by fee,ywbs,skhs
运行不了,求高手解答
谢谢高手指教
我这么作就是为了以b_397_d_qdyxqk_rp表中的一列为基数
然后再插入tb_397_d_qdskcz_rp 中的三列,以达到合并两个表的目的,请给出我合理运行的方法

首先,select fee,ywbs,hs 中三个字段的类型应该和insert into tb_397_d_qdyxqk_rp
(fee,
ywbs,
skhs)列表中保持一致。
其次,如果表tb_397_d_qdyxqk_rp和表tb_397_d_qdskcz_rp 中都存在fee, ywbs, skhs中的全部或部分字段的话,你应当在values列表中提供表名,以确定使用哪个表的值。否则会出现列名不明确的错误。
第三,也是最重要的,你的values子句中的结果集最多就是你要插入的表,这样很有可能会出现主键重复的错误,你从一张表中取值,又插入到这个表中,这样做的目的是什么呢?
第四,如果你的values子句中有的字段是从tb_397_d_qdskcz_rp表中取的,如果这些字段在tb_397_d_qdyxqk_rp表中恰好非空的话,可能会出现某某字段不能为空的错误,因为你使用了外连接。

insert into tb_397_d_qdyxqk_rp values
(fee,
ywbs,
skhs);
select fee,ywbs,hs
from tb_397_d_qdyxqk_rp m,
tb_397_d_qdskcz_rp n
where trim(m.channel_id)=n.busisit(+)
group by fee,ywbs,skhs

select语句有问题。fee,ywbs,hs 这三个列需要指定哪个列属于哪个表 如:

select m.fee,m.ywbs,n.hs from tb_397_d_qdyxqk_rp m,
tb_397_d_qdskcz_rp n
where 条件。

insert into tb_397_d_qdyxqk_rp values(fee,
ywbs,
skhs)

有道理..