注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 网工人才缺口大 传统网管..
 帮助

答网友问:如何按月进行统计公司采购进货、销售出库信息?


2007-09-12 16:04:52
 标签:SQL Server 答网友   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://foresun.blog.51cto.com/221037/42112
网友问:如何按月进行统计公司采购进货、销售出库信息?

答:采购进货、采购退货;销售出库、销售退货按月统计;其实对于生产方面也就很容易扩展了。
select docYear, docMon, cast(sum(iQty) as numeric(22,2)) iQty, cast(sum(iAmt) as numeric(22,2)) iAmt, cast(sum(oQty) as numeric(22,2)) oQty, cast(sum(oAmt) as numeric(22,2)) oAmt
from
(
select datepart(yy,a.docdate) docYear, datepart(mm,a.docdate) docMon, sum(b.quantity) iQty, sum(b.quantity*price) iAmt, 0 oQty, 0.00 oAmt
from OPDN a inner join PDN1 b on a.docentry=b.docentry
group by datepart(yy,a.docdate), datepart(mm,a.docdate)
union all
select datepart(yy,a.docdate) docYear, datepart(mm,a.docdate) docMon, -sum(b.quantity) iQty, -sum(b.quantity*price) iAmt, 0 oQty, 0.00 oAmt
from ORPD a inner join RPD1 b on a.docentry=b.docentry
group by datepart(yy,a.docdate), datepart(mm,a.docdate)
union all
select datepart(yy,a.docdate), datepart(mm,a.docdate), 0, 0.00, sum(b.quantity), sum(b.quantity*price)
from ODLN a inner join DLN1 b on a.docentry=b.docentry
group by datepart(yy,a.docdate), datepart(mm,a.docdate)
union all
select datepart(yy,a.docdate), datepart(mm,a.docdate), 0, 0.00, -sum(b.quantity), -sum(b.quantity*price)
from ORDN a inner join RDN1 b on a.docentry=b.docentry
group by datepart(yy,a.docdate), datepart(mm,a.docdate)) tmp
group by docYear, docMon

本文出自 “富盛软件工作室” 博客,请务必保留此出处http://foresun.blog.51cto.com/221037/42112





    文章评论
 
2007-09-12 21:42:10
慢慢看看
学习

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: