2014-03-13 19 views
0

我有一个列表中列出了股票代码,数量,转换日期的发票行表。 Boss希望看看在过去12周内卖出的每只股票数量,股票代码,第0周(本日历周),第1周......第11周。在SQL Server 2008中创建每个日历周的每部分编号的销售总额

我用下面的脚本来生成每个股票代码表week0,但不能把week1〜week11到同一个表:

set datefirst 1; 

select 
    stockcode, sum(quantity) as TotalSaleOfWeek0 
from 
    DR_INVLINES 
where 
    TRANSDATE > (getdate() - DATEPART(dw,getdate())) 
    and QUANTITY <> 0 
group by 
    STOCKCODE; 

请帮助..

在此先感谢。 。

+0

哪一天没有了一周的开始和结束?有一个功能可以获得一周中的一天 - 这可以让您轻松计算一周的第一个和最后一个日期。 – TomTom

+0

一周从星期一开始,以星期日结束,这就是为什么要设置datefirst 1.这是一个滚动表,取决于报表何时运行,但过去一周同一个项目的总销售额应该一致的日历明智(在它之前从桌子上掉下来)。 – TYZ

+0

感谢marc_s进行编辑!这是我第一次在这里发表问题,仍在学习...... – TYZ

回答

0

试试这个:

set datefirst 1; 

select 
    stockcode, DATEPART(WEEK, TRANSDATE) As Week, sum(quantity) as TotalSaleOfWeek0 
from 
    DR_INVLINES 
where 
    TRANSDATE > DATEADD(Week, -12, getdate()) 
    and QUANTITY <> 0 
group by 
    STOCKCODE, DATEPART(WEEK, TRANSDATE); 
+0

优秀!只是一点点的按摩就会把它变成格式.. – TYZ

相关问题