如何在 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 周的表达式的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 使用 JOIN 获取过去六周的数据

如何在 django 中检索过去几周的记录

如何在红移中获取过去 X 周的数据?

如何从oracle sql中的表中找到一周的峰值

如何在 s-s-rS 中使用表达式转移到报告

如何在表达式中引用文本框值? s-s-rS