Sql 在数据透视表中选择最近12周的销售额
下面的查询正在生成数据,但仅返回值的周数是过去四个月中的第10、11、12周。我需要能够获得过去12周的周数,即枢轴部分中使用的第10、11、12、13、14、15、16、17、18、19、20、21、22周数,但dateadd(week,-1,invoicedate)之类的公式不起作用 我正在使用SQLServer2008R2 谢谢Sql 在数据透视表中选择最近12周的销售额,sql,sql-server,Sql,Sql Server,下面的查询正在生成数据,但仅返回值的周数是过去四个月中的第10、11、12周。我需要能够获得过去12周的周数,即枢轴部分中使用的第10、11、12、13、14、15、16、17、18、19、20、21、22周数,但dateadd(week,-1,invoicedate)之类的公式不起作用 我正在使用SQLServer2008R2 谢谢 SELECT productid, [1] AS 'This Week', [2] AS 'Last Week', [3] AS '
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
而不是使用
DATEPART(week, Invoicedate) as Tweek
你可以用
-DATEDIFF(WEEK, CURRENT_TIMESTAMP, InvoiceDate) AS Tweek
这将给出现在和发票日期之间的周数差,而不是发票日期的周数