周报,新年之后出问题! 急急~~~~~~~~~~~~~~~~
ALTER proc proc_sqe_WeekInspLot
@inDate datetime, @whereStr nvarchar(3000)
as
set language us_english
declare @s varchar(8000),@i int
select @s='',@i=0
set language english
while @i > -4
select @s=',[WW'+datename(week,dateadd(week,@i,@inDate))
+']=count(case datename(week,SampleDates) when '''
+datename(week,dateadd(week,@i,@inDate))
+''' then LotNo end)'+@s
,@i=@i-1
exec('select ''Insp.Lot Qty'' as Date ' + @s + ' from vw_sqe_HeaderQty
where datediff(week,SampleDates,'''+ @inDate+''') between 0 and 3 '+ @whereStr +'
group by year(SampleDates)')
set language 简体中文
以上是我的存储过程,每次生成四周(当周,前三周)的数据。
在2004年的时候没问题,2005年就出错了。
2004年12月8号数据:
Date WW47 WW48 WW49 WW50
Insp.Lot Qty 1917 1710 1636 226
2005年1月8 号数据:
Date WW51 WW52 WW1 WW2
Insp.Lot Qty 1762 929 0 0
Insp.Lot Qty 0 0 70 1765
问题是,2004年与2005 年数据成了两条,我想得到的数据应是:
2005年1月8 号数据:
Date WW51 WW52 WW1 WW2
Insp.Lot Qty 1762 929 70 1765
我想问题是在2005年1月1日,存储过程里把2004年12月26日至31日的数据作为2004年52周的数据。
但2005年1月1日的数据就当成2005年的第1周数据了,所以成了两条数据。请问各位有没解决办法?
请大家帮我看看。谢谢!!