我现在有2个表
要判断2个表里库存的大小
storage checkselect a.sid,b.cid,a.qty,b.qty,coalesce(b.qty,0)-coalesce(a.qty,0) as esp_qty
from storage a left join check b
on
a.storage_type=b.storage_type此语句查出来3条记录,esp_qty 分别为10,-5,-10可是当我做子查询select esp_qty
from
(上面的语句) dd
where esp_qty<0查出来的esp_qty 为-10,-5,-10,也就是说本来esp_qty=10的这时候查出来是-10,怎么也搞不明白,
请高手给指点一下.
要判断2个表里库存的大小
storage checkselect a.sid,b.cid,a.qty,b.qty,coalesce(b.qty,0)-coalesce(a.qty,0) as esp_qty
from storage a left join check b
on
a.storage_type=b.storage_type此语句查出来3条记录,esp_qty 分别为10,-5,-10可是当我做子查询select esp_qty
from
(上面的语句) dd
where esp_qty<0查出来的esp_qty 为-10,-5,-10,也就是说本来esp_qty=10的这时候查出来是-10,怎么也搞不明白,
请高手给指点一下.
解决方案 »
- 我写了一个试图,效率太低了,请各位帮我看看
- 请教一SQL语句??谢谢
- 处理大字段时tomcat出现错误,提交不了。。。
- How to retrieve "Create Table" scripts from existing Oracle database via SQL*Plus or some other utilities?
- Oracle Sql 脚本中函数如何返回一个索引表,大侠帮帮忙,急
- [低级问题][update时插入日期含时分秒]
- 提示ORA-12541:TNS:没有监听器,这是怎么回事!
- Delphi中如何读写RAW类型的字段,ORacle7中Varchar2 最大允许的长度是多少?(今天揭帖)
- 请各位请帮帮我这个菜鸟
- PL/SQL 能干嘛?
- Oracle Exp EXP-00008 导出出错
- 求助触发器错误
试试:
select /*+ NO_MERGE(dd) */ esp_qty
from
(上面的语句) dd
where esp_qty <0 ;
是什么意思,直接加到语句里吗
试了一下,不好使啊,
还是去掉注释?不好意思,没用过
表里有一个字段为batch_no,它可能为空或者null
我的on条件里有a.batch_no=b.batch_no 的时候查出来的完全就是错了.
因此我写成了a.batch_no=b.batch_no or (a.batch_no is null and b.batch_no is null)在查询的时候没问题
但是把它当作子查询的时候,以上问题才出现.
不知道如何解决