小弟新手,今天在统计销售额是碰到问题了,一张销售表sale_table,一张剔除条件表reject_table
销售表中有一个金额saleprice,值是700、3700、5000等直接数字表示的,而剔除表中中也有一个saleprice
值却是>700、>=3700、>5000的字符串表示,要求出销售表按剔除表剔除后一号到五号每天的销售额,其他条件我都写好了,但是怎么比较700和>700啊,我试了很多方法,想把剔除表中saleprice拆分在成符号和钱数和销售表中钱进行比较,但是都没有成功,各位大大们求解怎么办啊,新人,分不多,求关照连表查询、拆分字符串、统计销售额
销售表中有一个金额saleprice,值是700、3700、5000等直接数字表示的,而剔除表中中也有一个saleprice
值却是>700、>=3700、>5000的字符串表示,要求出销售表按剔除表剔除后一号到五号每天的销售额,其他条件我都写好了,但是怎么比较700和>700啊,我试了很多方法,想把剔除表中saleprice拆分在成符号和钱数和销售表中钱进行比较,但是都没有成功,各位大大们求解怎么办啊,新人,分不多,求关照连表查询、拆分字符串、统计销售额
解决方案 »
- oracle 10g 安装后expdb ,impdb命令在cmd命令行不能使用! 请大侠指点迷津
- 急救DBA SQL简单语句求教!
- 用户模式和完全模式的导出和导入
- 分解一个SQL语句,help
- 数据同步问题
- 请教:将oracle中的数据实时导入到access中,急!!!
- 在本地计算机,无法启动OracleXETNSListener服务。
- 请教在SQL&PLUS中怎样执行Procedure?
- 请教一个数据库查询问题 有张表里面有经纬度列 longitude和latitude 但现在在里面创了新列的两个经纬度列en _longitude和en_lat
- 如何比对两个日期差几个月?日期格式包括秒或者是天
- 如何从表1得到如下查询结果?
- 请教Oracle排序问题
.saleprice
sql varchar2(1000);
cursor rejecttable is
select * from rejecttable;
recs rejecttable%rowtype;
begin
for recs in rejecttable loop
--最好用一个临时表来记录假设临时表结果和sale_table结构一样
sql:='insert into temp select * from sale_table where 字段1='||recs.字段1||' 字段2='||recs.字段2||' saleprice'||recs.saleprice;
execute immediate sql;
end loop;
end; 类似就是这样吧,像前面说的用动态sql,动态sql说实话就是先将你要执行的语句拼成一个完整的sql
然后execute immediate执行就好了,这个是YY出来的,不晓得可以用么.哈哈
具体可以这么办 用sign(数量字段-去掉">"销售额字段) 如果是等于关系 这个表达式为0 如果是大于关系,这个值为1。decode(instr('>700','>',),0,sign(数量字段-substr('>700',1)),sign(数量字段-substr('>700',2)))=decode(instr('>700','>',),0,0,1)
sign(数据-regexp_replace(条件,'[>=]')+decode(regexp_replace(条件,'[^>=]'),'>=',0.001,0))=1上面的表达式,吻合返回1,否则返回0或者-1