收录日期:2020/08/13 05:16:10 时间:2016/05/30 03:16:28 标签:基础类
CREATE  TABLE  #t1 (ProductID int ,Amount int ,Money money )
insert into #t1
select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblIn 
where InDate between ? and ?
group by ProductID
CREATE  TABLE  #t2 (ProductID int ,Amount int ,Money money )
insert into #t2
select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblOut 
where OutDate between ? and ?
group by ProductID
select a.ProductID,a.Name as 名称,a.Size as 规格型号,a.Unit as 计量单位,(a.Amount+sum(isnull(#t2.Amount,0))-sum(isnull(#t1.Amount,0))) as 上月底库存数量,
(a.Money+sum(isnull(#t2.Money,0))-sum(isnull(#t1.Money,0))) as 上月底库存金额,sum(isnull(#t1.Amount,0)) as 入库物资数量,sum(isnull(#t1.Money,0)) as 入库物资金额,sum(isnull(#t2.Amount,0)) as 出库物资数量,sum(isnull(#t2.Money,0)) as 出库物资金额,
a.Amount as 本月底库存数量,a.Money as 本月底库存金额
from tblProduct as a
left join #t1 on a.ProductID=#t1.ProductID
left join #t2 on a.ProductID=#t2.ProductID
group by a.ProductID,a.Name,a.Size,a.Unit,a.Amount,a.Money
drop table #t1, #t2
不用临时表,就得用Cursor
说错了,我觉得可以的
select a.ProductID,a.Name as 名称,a.Size as 规格型号,a.Unit as 计量单位,
           (a.Amount+isnull(t2.Amount,0)-isnull(t1.Amount,0)) as 上月底库存数量,
           (a.Money+isnull(t2.Money,0)-isnull(t1.Money,0)) as 上月底库存金额,
           isnull(t1.Amount,0) as 入库物资数量,
           isnull(t1.Money,0) as 入库物资金额,
           isnull(t2.Amount,0) as 出库物资数量,
           isnull(t2.Money,0) as 出库物资金额,
a.Amount as 本月底库存数量,a.Money as 本月底库存金额
from tblProduct as a left join 
          ( select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblIn 
             where InDate between ? and ?
             group by ProductID) t1 on  a.ProductID=t1.ProductID left Join
          ( select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblOut 
            where OutDate between ? and ? group by ProductID) t2 on a.ProductID=t2.ProductID
group by a.ProductID, a.Name, a.Size, a.Unit, a.Amount, a.Money
http://www.microsoft.com/china/MSDN/library/data/sqlserver/FiveWaystoRevupYourSQLPerformanCE.mspx
select a.ProductID,a.Name as 名称,a.Size as 规格型号,a.Unit as 计量单位,(a.Amount+sum(isnull(t2.Amount,0))-sum(isnull(t1.Amount,0))) as 上月底库存数量,
(a.Money+sum(isnull(t2.Money,0))-sum(isnull(t1.Money,0))) as 上月底库存金额,sum(isnull(t1.Amount,0)) as 入库物资数量,sum(isnull(t1.Money,0)) as 入库物资金额,sum(isnull(t2.Amount,0)) as 出库物资数量,sum(isnull(t2.Money,0)) as 出库物资金额,
a.Amount as 本月底库存数量,a.Money as 本月底库存金额
from tblProduct as a
left join 
(select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblIn 
where InDate between ? and ?
group by ProductID) t1 
on a.ProductID=t1.ProductID
left join 
(select ProductID,sum(isnull(Amount,0)) as Amount,sum(isnull(Money,0)) as Money from tblOut 
where OutDate between ? and ?
group by ProductID) t2 
on a.ProductID=t2.ProductID
group by a.ProductID,a.Name,a.Size,a.Unit,a.Amount,a.Money
select a.ProductID,a.Name as 名称,a.Size as 规格型号,a.Unit as 计量单位,(a.Amount+
sum(isnull(c.Amount,0))-sum(isnull(c.Amount,0)) as 上月底库存数量,
(a.Money+sum(isnull(c.Money,0))-sum(isnull(b.Money,0))) as 上月底库存金,
sum(isnull(b.Amount,0)) as 入库物资数量,sum(isnull(b.Money,0)) as 入库物资金额,sum(isnull(c.Amount,0)) as 出库物资数量,sum(isnull(c.Money,0)) as 出库物资金额,
a.Amount as 本月底库存数量,a.Money as 本月底库存金额
from tblProduct as a
left join tblIn as b on a.productid=b.productid
left join tblOut as c on a.productid=c.productid
where
c.OutDate between ? and ?
and 
b.between ? and ?
group by a.ProductID,a.Name,a.Size,a.Unit,a.Amount,a.Money


select a.ProductID,a.Name as 名称,a.Size as 规格型号,a.Unit as 计量单位
,a.Amount+isnull(b.Amount,0)   as 上月底库存数量
,a.[Money]+isnull(b.[Money],0) as 上月底库存金额
,isnull(b.in_Amount,0)  as 入库物资数量
,isnull(b.in_Money,0)   as 入库物资金额
,isnull(b.out_Amount,0) as 出库物资数量
,isnull(b.out_Money,0)   as 出库物资金额
,a.Amount  as 本月底库存数量
,a.[Money] as 本月底库存金额
from tblProduct as a
left join(
select ProductID
,in_Amount=sum(in_Amount),in_Money=sum(in_Money)
,out_Amount=sum(out_Amount),out_Money=sum(out_Money)
,Amount=sum(Amount),[Money]=sum([Money])
from(
select ProductID
,in_Amount=Amount,in_Money=[Money]
,out_Amount=0,out_Money=0
,Amount,[Money]
from tblIn 
where InDate between ? and ?
union all
select ProductID
,in_Amount=0,in_Money=0
,out_Amount=Amount,out_Money=[Money]
,-Amount,-[Money]
from tblOut 
where OutDate between ? and ?
) a group by ProductID
)b on a.ProductID=b.ProductID

如何在程序中將prn後綴的文件轉成以csv為格式的文件 紧急请求帮助阿!关于ado操作oracle程序的安装问题 如何用DELPHI编邮件监控 紧急求救!--\"Invalid BLOB handle in record buffer\" 右键弹出式菜单,能不能动态增加? 请高手讲讲关于菜单和与之对应的回调函数之间的关系? vb中获得打开网页中的对象问题? 如何将DataGrid中的单元格合并?希望有该类文章或者有建设性的想法~ 装上猫后声卡就不发声了,是不是冲突啊?请问怎么办? span是什么东西,怎么用它啊?我的.aspx文件里有这个东西,在它的.cs文件中调用时说没有using. pb中的资源文件???? 有关分布式问题,急。。。 IBM Thinkpad 到底怎样? Redhat Linux7.2 kde环境如何显示中文? 能否用VB控制USB的电源开关? 判断点是否在多边形内部 关于window.open的问题 能否用DELPHI控制USB的电源开关? 文档管理,一大堆工程图纸,和技术资料,怎么保存和管理,外加版本控制(check in/out,merch,history)等功能!给个思路,进来有分!! 关于MSCUBE数据增量更新的问题 谁使用过packet.lib(packet.dll)? 大家说说一个程序员的出路,尤其是一个女性软件工程师的出路! 有用过dxbgrid的吗,这个是什么原因阿 如何將prn格式的文件轉換成csv格式的文件 [水园公务帖](2002年11月26日开帖,将于2002年12月2日结帖) 怎么调用vc写的动态库,解决即结贴 一个提议(up者有分) 水源马甲联盟---力挺精华贴! 请众水友及马甲推荐! 请问:如何构建这个链表,进行排序? 如何將prn格式的文件轉換成csv格式的文件