请教达人这两个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语句表示出来

这两个问题,请各位达人帮忙解决一下,谢谢!!
...全文
194 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
为什么要进行左连接?????

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧