• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

请教达人这两个sql语句

zhegemingzishuizaiyo 2008-03-05 07:57:21
第一个问题::

产品表

产品编号 | 产品名称 | 产品价格
—————| —————|—————
| |

客户表

客户编号 | 客户名称 | 客户价格
—————| —————|—————
| |

订单表

订单编号 | 产品编号 | 客户编号
—————| —————|—————
| |

订单明细表

订单编号 | 订单日期 | 数量 | 产品编号
—————| —————|—————————
| | |

想输出以下表单

订单编号 | 产品编号 | 产品名称 | 订单日期 | 总价
—————| —————|———————————————
| | | |



第二个问题::

收发记录表


日期 | 仓库名称 | 仓库编号 | 商品种类 | 收发标志 | 数量
—————| —————|—————————————————————
| 南 | 001 | A | 收 | 12
—————————————————————————————————
| 北 | 002 | A | 收 | 24
—————-—————-—————————————————————
| 西 | 003 | B | 收 | 50
—————————————————————————————————
| 西 | 003 | B | 发 | 12
—————| —————|—————————————————————
| 东 | 004 | A | 发 | 10
—————————————————————————————————
| | | B | 收 | 16
—————| —————|—————————————————————
………… | ………… | ……… | ………… | ………… | …………

输出::

日期 | 仓库名称 | 仓库编号 | 商品种类 | 现存存数量 |
————————————————————————————--———
| | | | |
—————| —————|—————————————————————
| | | | |

以上问题尽量用一句SQL语句表示出来

这两个问题,请各位达人帮忙解决一下,谢谢!!
...全文
155 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cxmcxm 2008-03-07
--第二问题
select max(日期),仓库名称,仓库编号,商品种类,
sum(case when 收发标志='收' then 数量 else -数量 end) 现在数量
from 表
group by 仓库名称,仓库编号,商品种类,
回复
cxmcxm 2008-03-07
]--第一问题
select b.订单编号,b.产品编号,a.产品名称,C.订单日期,sum(c.数量*a.产品价格) as 总价
from 产品表 a,订单表 b,订单明细表 c
where b.订单编号=c.订单编号 and b.产品编号=c.产品编号 and a.产品编号=b.产品编号
group by b.订单编号,b.产品编号,a.产品名称,C.订单日期
回复
嗯,我会好好学的,有问题再来问,谢谢各位
回复
嗯,我会好好学的,有问题再来问,谢谢各位
回复
-狙击手- 2008-03-06
楼主应该先了解一下什么 是左联接呀,
左联接可以包含订单明细表 的所有行,而不是仅仅是两表的匹配行
回复
请给我解释一下为什么要使用左联接,我是个初学者,谢谢
回复
$扫地僧$ 2008-03-06


--1
select A.订单编号,A.产品编号,B.产品名称,A.订单日期,A.数量*B,产品价格 as 总价
from 订单明细表 A left join 产品表 B on A.产品编号=B.产品编号

--2
select Max(日期) as 日期,
仓库名称,仓库编号,商品种类 ,
sum(case when 收发标志='收' then 数量 when 收发标志='发' then -数量 end )数量
from 收发记录表
group by 仓库名称,仓库编号,商品种类
回复
wmxj2008 2008-03-06
谢谢 学习中......
回复
xufeng8510 2008-03-05
select a.订单编号 ,a.产品编号,b.产品名称,a.订单日期,数量*产品价格 as 总价 from 订单明细表 a ,产品表 b
where a.产品编号=b.产品编号
回复
skyzcl 2008-03-05
select 订单编号,a.产品编号,b.产品名称,订单日期,总价=数量*产品价格
from 订单明细表 a ,产品表 b
where a.产品编号=b.产品编号

回复
pt1314917 2008-03-05

--try:

--1、
select 订单编号,a.产品编号,b.产品名称,订单日期,总价=数量*产品价格
from 订单明细表 a left join 产品表 b
on a.产品编号=b.产品编号

--2、
select 日期,库名称,仓库编号,商品种类,
现存存数量=(select sum(数量) from 收发记录表 where 仓库编号=a.仓库编号 and 收发标志='收')
-(select sum(数量) from 收发记录表 where 仓库编号=a.仓库编号 and 收发标志='发')
from 收发记录表 a
回复
为什么要进行左连接?????
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-05 07:57
社区公告
暂无公告