确定我是否连续增加值

时间:2014-05-15 14:21:22

标签: sql ssis

我有一个SQL表,其中包含日期(日期),位置和值。该表按日期和位置排序。我想知道如果连续9个日期中的值都增加或不增加(所以我可以在最终的图表中标记它们)。如果9个值正在增加,那么在第9天我希望它在新列中标记。在整个时间段内,这将是一个滚动的9天。我也想弄清楚,如果在一组3天内,2/3的值超过X限制。 (基本上是WECO规则)非常感谢对方法的建议!我使用的是SQL Management Studio和/或SSIS或SSRS。谢谢!

1 个答案:

答案 0 :(得分:0)

- 创建表格

CREATE TABLE [dbo].[Weco](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [aDate] [date] NULL,
 CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
) 
);

- 插入数据

INSERT INTO [dbo].[Weco] 
VALUES 
('2012-01-01'), ('2012-01-02'), ('2012-01-03'), ('2012-01-04');

- 运行此查询。这应该给你一些想法

SELECT
    W1.ID, W1.[aDate] , DATEDIFF (d,W1.aDate, W2.aDate)
FROM [dbo].[Weco] W1
--inner join 
LEFT OUTER JOIN
(
    SELECT
         W2.ID, 
         W2.[aDate]
    FROM [dbo].[Weco] W2
    WHERE W2.ID > (SELECT MIN (ID)FROM [dbo].[Weco])
) W2 on W1.ID = W2.ID - 1