日期:2014-05-17  浏览次数:20707 次

急急急!存储过程 月份参数怎么写!
SQL code

开始时间     ---------结束时间

上月月初时间:

DATEADD(Month,-1,DATEADD(s,-1,CONVERT(char(8),DATEADD(Month,1,getdate()),120)+'1'))


--上月月末时间' 商品名称 和总数量
select ProductName,sum(Qty)as LastMonthTotalQty,StateDate into #p1 from V_Product  

where StateDate<='上月初时间'

--本月初时间' 商品名称 和总数量

select ProductName,sum(Qty) as ThisMonthTotalQty,StateDate into #p2 from V_Product  

where StateDate>='本月时间' 

insert into #rep (#p1.ProductName,#p2.ProductName,#p1.LastMonthTotalQty,#p2.ThisMonthTotalQty)
select isnull(#p1.ProductName,#p2.ProductName),
       isnull(#p1.LastMonthTotalQty,#p2.ThisMonthTotalQty)

from #p1 inner join #p2 on #p1.Id=#p2.Id

select * from #rep


查询条件的话单表是一个月的表,查询的条件是哪个月为本月

比如:我选择开始时间: 3月10号   结束时间 为 7月 10日
那么上月时间就为: 3月10号 0时0分0秒---6月30日 23点59分59秒
    本月时间 就是7月1日 -- 7月10号 23点59分59秒


就想问一下 这2个月份参数怎么加上!急急急! 




------解决方案--------------------
创建带有参数的存储过程
create procedure Pro_Test
@startTime dateTime,
@endTime dateTime
AS
BEGIN
--执行代码
END

调用方法
DECLARE @startTime dateTime
DECLARE @EndTime dateTime

SET @startTime = '2012-03-10'
SET @EndTime = '2012-07-10'
exec dbo.Pro_Test @startTime ,@EndTime

------解决方案--------------------
什么叫不是固定死的

------解决方案--------------------
写成存储过程 然后开始时间和结束时间作为参数 是不是这个意思?
------解决方案--------------------
加个字段区分
SQL code
select month(上月初时间)  as nonth, ProductName,sum(Qty)as LastMonthTotalQty,StateDate into #p1 from V_Product  

where StateDate<='上月初时间'

------解决方案--------------------
DECLARE @startTime dateTime
DECLARE @EndTime dateTime

select @startTime =DATEADD(Month,-1,DATEADD(s,-1,CONVERT(char(8),DATEADD(Month,1,getdate()),120)+'1'))


这样不行么