【问题标题】:Selecting the last 12 weeks sales in pivot table在数据透视表中选择过去 12 周的销售额
【发布时间】:2014-07-03 09:33:27
【问题描述】:

以下查询正在生成数据,但仅返回值的周是第 10、11、12 周,就像过去四个月一样。我需要能够获得过去 12 周的周数,即在枢轴部分使用的第 10、11、12、13、14、15、16、17、18、19、20、21、22 周,但是一个公式像 dateadd(week,-1,invoicedate) 不起作用

我使用的是 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 

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    而不是使用

    DATEPART(week, Invoicedate)  as Tweek
    

    你可以使用

    -DATEDIFF(WEEK, CURRENT_TIMESTAMP, InvoiceDate) AS Tweek
    

    这将给出从现在到发票日期之间的周数差异,而不是发票日期的周数

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 2016-02-06
      • 2017-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 2018-08-12
      相关资源
      最近更新 更多