我的数据库是sql server.
有四个表:1、商品库存(仓库编号,商品编号,库存数量)
2、仓库(仓库编号,仓库名称),
3、商品信息(商品编号,商品名称)
4、订单作业(订单编号,仓库编号,商品编号,订单数量).
现在我想查询订单编号为DD001的订单明细,并且要返回如下字段:
(仓库名称,商品编号,商品名称,订单数量,库存数量)
请问这样的查询如何用一条SQL语句,如果一条不行,那应该如何办呢?
有四个表:1、商品库存(仓库编号,商品编号,库存数量)
2、仓库(仓库编号,仓库名称),
3、商品信息(商品编号,商品名称)
4、订单作业(订单编号,仓库编号,商品编号,订单数量).
现在我想查询订单编号为DD001的订单明细,并且要返回如下字段:
(仓库名称,商品编号,商品名称,订单数量,库存数量)
请问这样的查询如何用一条SQL语句,如果一条不行,那应该如何办呢?
解决方案 »
- 经典的判断数据库连接断开问题,翻遍了许多地方没有答案。
- 一个关于Cannot modify a read-only dataset的问题,请高手帮忙,在线等!
- 时间查询问题
- 誰有編譯過SQLDMO_TLB.PAS 文件可以給我一份嗎
- 有没有real转str的函数
- 史无前例的一天——昨天——见到了传说中的Kingron和GoodHope
- 我的检验代码放在TreeView的Edited中,可是如果用户不输入直接回车就
- sqlserver表内容如何插入paradox本地表??
- 如何将图存入表中?
- 我编了一个多层数据库的软件,在没有Delphi的机器上无法运行,请求解决方法
- 开放FTP,有大量电子书
- 修改listview中columns选项问题
from 订单作业 a left join 仓库 b on a.仓库编号 = b.仓库编号
left join 商品库存 c on a.仓库编号 = c.仓库编号
left join 商品信息 d on a.商品编号 = d.商品编号
(select 仓库名称 from [仓库] where 仓库编号=A.仓库编号) as 仓库名称,
商品编号,
(select 商品名称 from [商品信息] where 商品编号=A.商品编号) as 商品名称,
订单数量,
(select 库存数量 from [商品库存] where 仓库编号=A.仓库编号 and 商品编号=A.商品编号) as 库存数量
from
[订单作业] A
where
订单编号='DD001'
另外,where后面的条件排列顺序会在很大程度上影响到查询的效率,
这个要根据表中数据的具体情况进行排列,让匹配可能相对较小的条件放在前面,
如果我在商品信息中多了一个成本价字段,那我应该如何写呢?
那种的执行效率更好?
若这种查询多的话,建立视图怎样支持!
回复人: meiqingsong(阿飛) ( ) 信誉:111
------------>
to unsigned(僵哥):
如果我在商品信息中多了一个成本价字段,那我应该如何写呢?
-------------->
多寫一個字段咯select b.仓库名称,a.商品编号,d.商品名称,a.订单数量,c.库存数量,d.成本價
from 订单作业 a left join 仓库 b on a.仓库编号 = b.仓库编号
left join 商品库存 c on a.仓库编号 = c.仓库编号
left join 商品信息 d on a.商品编号 = d.商品编号另外我覺得你訂單那個表,倉庫編號這個字段是多余的。