如何在 s-s-rS 中评估过去 12 周的表达式
Posted
技术标签:
【中文标题】如何在 s-s-rS 中评估过去 12 周的表达式【英文标题】:How to evaluate an expression for last 12 weeks in s-s-rS 【发布时间】:2014-04-16 21:14:40 【问题描述】:我有以下 sql 查询,它将按日期将一些值保存到表中:
/* ADD TODAY DATE (e.g. 04-11-2014) WITH THE ABANDON RATE % */
--TRUNCATE TABLE [db].[dbo].[table]
IF NOT EXISTS(SELECT * FROM [db].[DBO].[table] WHERE CONVERT(VARCHAR(10),GETDATE(),110) = [Date])
INSERT INTO [db].[dbo].[table] --uncomment on second and consequent run
SELECT CONVERT(VARCHAR(10),GETDATE(),110) AS [Date], [F5] AS [Abandon_Rate]
--INTO [db].[DBO].[table] --on first run and then comment
FROM [db].[DBO].[table2]
所以每个星期天运行时都会有以下数据:
Date Abandon_Rate
4-13-2014 12.3
并且每周它都会继续插入到每周的现有数据中。
如何在 s-s-rS 中编写一个仅在条形图中显示过去 12 周数据的表达式。
例如,如果有过去 18 周的数据:
Date Abandon_Rate
4-13-2014 12.3
4-6-2014 9.6
3-30-2014 8.9
3-23-2014 11.3
...
1-15-2014 7.6
我只会看到从 2014 年 1 月 26 日到 2014 年 4 月 13 日的数据,因此每周都会比前一周增加一周。
【问题讨论】:
每周表格中是否只有一行?如果是这样,那么这应该工作:SELECT TOP 12 CONVERT(VARCHAR(10),GETDATE(),110) AS [Date], [F5] AS [Abandon_Rate] FROM [db].[DBO].[table2] ORDER BY [Date] DESC
是的,每周只有一行 :) 如果我还想添加一个包含周数的列呢?
【参考方案1】:
尝试以下作为您的数据源查询
SELECT TOP 12 [Date], [Abandon_Rate]
FROM
[db].[dbo].[table]
ORDER BY CONVERT(DATE,[Date]) DESC
每周运行此查询时,您都会获得最近 12 周的数据。
【讨论】:
谢谢。听起来它会起作用。如果我还想添加一个带有周数的列呢?以上是关于如何在 s-s-rS 中评估过去 12 周的表达式的主要内容,如果未能解决你的问题,请参考以下文章