日期:2014-05-18  浏览次数:20430 次

查询困难,我都怀疑数据库设计有问题了。。。
查询一下问题:
1。显示缺货且未发出订单的商品
2。显示缺货且已经发出订单但未到货

数据库中有如下的相关表:
Goods包含商品信息,关键列goods_code商品编号;
Store包含商品库存信息,关键列goods_code,min_quantity库存最低值,quantity现存量;
Orders包含订单信息,关键列order_code订单号,goods_code商品编号,quantity订货数量,order_date订单日期,state订单状态。

说明state订单状态:
0:没有到货,1:已经到货,2:订单取消。

这是我的实践项目里出现的问题,很关键的功能,希望能得到高手的指点。
问题描述不清楚的请提出。

------解决方案--------------------
1.select goods_code from Store where quantity=0 and not exists(select goods_code from Orders)
2.select goods_code from Store where quantity=0 and exists(select goods_code from Orders where order_code in(select order_code from order_date where state=0 )
------解决方案--------------------
1.
select *
from Store s
where not exists (select 1 from Orders where a.goods_code =goods_code and (not state =2 or 1 =1 ))
and min_quantity> quantity
----?
这个不是很明白
2.
select *
from Store s
where exists (select 1 from Orders where a.goods_code =goods_code and state = 0 )
and min_quantity> quantity
------解决方案--------------------
1. select Goods.goods_code from Goods,Store,Orders where
Store.min_quantity> Store.quantity and
not exists(select goods_code from Orders)

2. select Goods.goods_code from Goods,Store,Orders where
Store.min_quantity> Store.quantity and
exists(select goods_code from Orders where state=0)