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