请各位大虾多多指点,想实现的问题如下,最好能帮忙列下sql或者过程:
class 在 AA 表中对应的property和price有7种情况(class A: propertyA: priceA,
class B: propertyB: priceB,
class C: propertyC: priceC,
class D: propertyD: priceD,
class E: propertyE: priceE,
class F: propertyF: priceF,
class G: propertyG: priceG, )
要将这7种情况的class信息插入到另外一张表BB中,插入的前提条件是
1。其中的一条记录地Price要减掉另外一张CC表中的某值Q, 并且选择这条记录的条件是在有A品种的时候选A, 无A的时候选C,无A,C的时候选E,无A,C,E的时候选B,无A,C,B,E 的时候选D,无A,B,C,D,E的时候选F
2。在插入这条已经减掉Q的记录到BB表中后,其它AA表中的class信息无变化的插入BB表中感激不尽~~~~
class 在 AA 表中对应的property和price有7种情况(class A: propertyA: priceA,
class B: propertyB: priceB,
class C: propertyC: priceC,
class D: propertyD: priceD,
class E: propertyE: priceE,
class F: propertyF: priceF,
class G: propertyG: priceG, )
要将这7种情况的class信息插入到另外一张表BB中,插入的前提条件是
1。其中的一条记录地Price要减掉另外一张CC表中的某值Q, 并且选择这条记录的条件是在有A品种的时候选A, 无A的时候选C,无A,C的时候选E,无A,C,E的时候选B,无A,C,B,E 的时候选D,无A,B,C,D,E的时候选F
2。在插入这条已经减掉Q的记录到BB表中后,其它AA表中的class信息无变化的插入BB表中感激不尽~~~~
解决方案 »
- 关于oracle性能优化的问题
- Oracle远程导入 ORA-00959:表空间××不存在
- alter database datafile 4 online;显示需要执行介质恢复?
- oracle 在xp系统下的安装问题,请高手指导下!!!跪求!!!
- 关于oracle instant client设置DSN的问题。
- 关于ORA-00604/ORA-04031问题
- oracle中触发器问题:在表A上的触发器不能读写表A,请oracle高手帮忙解决!!在线等!!!
- 过来人请留步!
- 怎么把两列子段连接成一列输出?
- 在p4上安装oracle8.1.7后,老是提示java.exe出错,请问如后解决
- 从oracle10client 连接到oracle9备份的问题
- sql 写个sql 得到: 上一列 的 数据 第一列 为null
insert into BB
select class,property,decode(rn,1,price-CC.Q,price) from (
select class,property,price,rownum rn from AA order by decode(品种,'A',0,'C',1,'E',2,'B',3,'D',4,'F',5,6)
)
--我不知道你的CC.Q从哪里来,如果是定值,直接替换掉就行,如果要查表,你就自己做个条件连接
--还有用insert into.. select..的时候,注意下表结构,
--如果两个表的表结构有差别,就用insert into BB(具体的字段) select ...
谢谢1和2楼的回答,正在学习merge,真的希望继续讨论哈
你自己的逻辑就没弄清楚。
“无A的时候选C,无A,C的时候选E,”那你第一句话就是错的,无A时是选C和E中的一个,不是C。
nvl(A,nvl(C,nvl(E,nvl(B,nvl(nvl(D,F))你的逻辑是这个。
还有楼主说读到C,就把C直接插入,这个不是你要的效果啊,你不是说除了第一条是要做完减法后插入,其他的都是无变化插入吗?