麻烦乌龟大哥帮忙看一下

shirley_yue shirley_yue 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
麻烦乌龟大哥帮忙看一下,我不知道要怎么解决比较好:
我这里模拟了一个表:(实际库中的这个表的数据很大,有上百万条的数据)
DECLARE @TMP TABLE(SN INT ,EndDate DATETIME,Num DECIMAL(18,2) )
INSERT INTO @TMP
SELECT 1,CONVERT(CHAR(10),GETDATE(),120),22 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-1,GETDATE()),120),1 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-2,GETDATE()),120),0.1 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-6,GETDATE()),120),20 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-14,GETDATE()),120),50 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-15,GETDATE()),120),25 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-26,GETDATE()),120),48 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(DAY,-37,GETDATE()),120),12 UNION ALL
SELECT 1,CONVERT(CHAR(10),DATEADD(MONTH,-3,GETDATE()),120),36 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-1,GETDATE()),120),36 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-2,GETDATE()),120),12 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-3,GETDATE()),120),22.23 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-14,GETDATE()),120),45 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-25,GETDATE()),120),22.65 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(DAY,-36,GETDATE()),120),12 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(MONTH,-7,GETDATE()),120),23 UNION ALL
SELECT 2,CONVERT(CHAR(10),DATEADD(YEAR,-1,GETDATE()),120),65

SELECT * FROM @TMP
想要得到一下的结果:
/*其中ResultDate这个字段是这样得到的:每个SN的Num值朝前取,直到数值达到100的那天的日期
SN EndDate Num ResultDate
1 2009-03-19 00:00:00.000 22.0000 2009-03-04
1 2009-03-18 00:00:00.000 1.0000 2009-02-21
1 2009-03-17 00:00:00.000 0.1000 2009-02-21
1 2009-03-13 00:00:00.000 20.0000 2009-02-21
1 2009-03-05 00:00:00.000 50.0000 2009-02-21
1 2009-03-04 00:00:00.000 25.0000 2008-12-19
1 2009-02-21 00:00:00.000 48.0000 NULL
1 2009-02-10 00:00:00.000 12.0000 NULL
1 2008-12-19 00:00:00.000 36.0000 NULL
2 2009-03-18 00:00:00.000 36.0000 2009-03-05
2 2009-03-17 00:00:00.000 12.0000 2009-02-22
2 2009-03-16 00:00:00.000 22.2300 2009-02-11
2 2009-03-05 00:00:00.000 45.0000 2008-08-19
2 2009-02-22 00:00:00.000 22.6500 2008-03-19
2 2009-02-11 00:00:00.000 12.0000 2008-03-19
2 2008-08-19 00:00:00.000 23.0000 NULL
2 2008-03-19 00:00:00.000 65.0000 NULL*/
不知道我有没有描述清楚?麻烦了!
...全文
评论 15
收藏 已收藏
分享
返回顶部
shirley_yue
MS-SQL Server 34,876 成员 254,635 内容