2014-07-03 70 views
0

以下查詢正在生成數據,但僅返回值的週數是過去四個月中的第10,11,12周。我需要能夠獲得過去12周的週數,即在數據透視部分中使用的週數爲10,11,12,13,14,15,16,17,18,19,20,21,22,但是公式像DATEADD(星期,-1,invoicedate)does not工作選擇數據透視表中的最後12周銷售量

林使用SQL Server 2008 R2

感謝

SELECT productid, 
    [1] AS 'This Week', 
    [2] AS 'Last Week', 
    [3] AS 'Week -3', 
    [4] AS 'Week -4', 
    [5] AS 'Week -5', 
    [6] AS 'Week -6', 
    [7] AS 'Week -7', 
    [8] AS 'Week -8', 
    [9] AS 'Week -9', 
    [10] AS 'Week -10', 
    [11] AS 'Week -11', 
    [12] AS 'Week -12' 
FROM (SELECT productid, 
      qtyinvoiced, 
      Datepart(week, invoicedate) AS Tweek 
    FROM dbo.invoicedetail 
    WHERE invoicedate > Dateadd(m, -4, CURRENT_TIMESTAMP)) source 
    PIVOT (Sum(qtyinvoiced) 
     FOR tweek IN ([1], 
         [2], 
         [3], 
         [4], 
         [5], 
         [6], 
         [7], 
         [8], 
         [9], 
         [10], 
         [11], 
         [12])) AS pvtmonth 

回答

0

而不是使用

DATEPART(week, Invoicedate) as Tweek 

您可以使用

-DATEDIFF(WEEK, CURRENT_TIMESTAMP, InvoiceDate) AS Tweek 

這會給現在和發票日期間在周的差異,而不是發票日期

+0

的週數非常完美的感謝 – Mikeysadleir