一个数据库的多表查询方面的问题(3个表,sql server)请大家指点一下。

xiaoshentaoa 2011-07-20 02:19:57
我现在有3个表:
物料信息表Materiel_Info,库单表Materiel_Process,库单详细表Materiel_Process_Detail
物料信息表Materiel_Info中有仓库中物料的详细信息:MaterielID(物料编号),MaterielName(物料名字),MaterielNum(物料数量),
库单表Materiel_Process中有入库单的一些信息:ProcessID(库单号),Action(库单是入库单还是出库单,状态),MakeTime(库单时间)
库单详细表Materiel_Process_Detail中有每一张库单里面货物的详细信息:ProcessID(库单号),MaterielID(物料号),Number(数量),Price(单价)


就是说每一张表单上面有好几种货物,仓库中的同一种货物可能来自不同的库单,所以价格也不一样。

我主要想实现的是,比如说7月我要总结一下,仓库中货物的数量 单价 总金额的统计。我想每个物品可能有多个价格所以要显示多条记录(苹果10块钱一斤的还有20斤总价是200块钱,12块一斤的有20斤总价是240元,然后显示多条)

可能说的不是很明白,在线等,大家忙的话,给个思路也成,小弟初来乍到,求教各位啦。
...全文
47 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoshentaoa 2011-07-20
  • 打赏
  • 举报
回复
谢谢大家
Varchar 2011-07-20
  • 打赏
  • 举报
回复
应该有月结表或者日结表,减少查询数据量
Varchar 2011-07-20
  • 打赏
  • 举报
回复

select c.MaterielName
,sum(case c.Action when '入库' then b.number else -b.number end)
,b.price
,sum(case c.Action when '入库' then b.number*b.price else -b.number*b.price end) as totalAmount
from Materiel_Process a join Materiel_Process_Detail b on a.ProcessID = b.ProcessID
join Materiel_Info c on b.MaterielID = c.MaterielID
where a.MakeTime < '2011-07-01'
group by c.MaterielName
,b.price

cd731107 2011-07-20
  • 打赏
  • 举报
回复
--Action=1表示入库,-1表示出库
select b.MaterielID,c.MaterielName,
sum(b.Number*a.Action) as 数量,
sum(b.Number*b.Price*a.Action) as 金额
from Materiel_Process a,Materiel_Process_Detail b,Materiel_Info c
where a.ProcessID=b.ProcessID and b.MaterielID=c.MaterielID
group by b.MaterielID,b.Price,c.MaterielName
AcHerat 2011-07-20
  • 打赏
  • 举报
回复

select c.MaterielName,b.number,b.price,b.number*b.price as totalAmount
from Materiel_Process a join Materiel_Process_Detail b on a.ProcessID = b.ProcessID
join Materiel_Info c on b.MaterielID = c.MaterielID
where convert(varchar(7),a.MakeTime,120) = '2011-07'
AcHerat 2011-07-20
  • 打赏
  • 举报
回复

select c.MaterielName,b.number,b.price,b.number*b.price as totalAmount
from Materiel_Process a join Materiel_Process_Detail b on a.ProcessID = b.ProcessID
join Materiel_Info c on b.MaterielID = c.MaterielID

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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