有数据修改日志表,记录每次数据改变时的日期和数值,现在想得到每天的数值,问如何实现。

木易随风 2014-12-12 04:19:51
数据修改日志,记录每次数据改变时的日期,现在想得到每天的数据。提供以下实例,望各位大侠帮忙解惑。
想得到的结果:


RQ V
----------------------- -----------
2014-01-01 00:00:00.000 10
2014-02-01 00:00:00.000 10
2014-03-01 00:00:00.000 10
2014-04-01 00:00:00.000 10
2014-05-01 00:00:00.000 50
2014-06-01 00:00:00.000 50
2014-07-01 00:00:00.000 50
2014-08-01 00:00:00.000 50
2014-09-01 00:00:00.000 50
2014-10-01 00:00:00.000 50
2014-11-01 00:00:00.000 50
2014-12-01 00:00:00.000 50



DECLARE @tb1 AS TABLE (RQ DATETIME)
INSERT INTO @tb1
SELECT DATEADD(MONTH,NUMBER,'2014-1-1') FROM [master]..SPT_VALUES WHERE [TYPE]='P' AND NUMBER<12

DECLARE @TB2 AS TABLE (RQ DATETIME,V INT)
INSERT INTO @TB2
SELECT '2014-1-1',10
UNION
SELECT '2014-5-1',50

SELECT * FROM @tb1
SELECT * FROM @TB2

RQ
-----------------------
2014-01-01 00:00:00.000
2014-02-01 00:00:00.000
2014-03-01 00:00:00.000
2014-04-01 00:00:00.000
2014-05-01 00:00:00.000
2014-06-01 00:00:00.000
2014-07-01 00:00:00.000
2014-08-01 00:00:00.000
2014-09-01 00:00:00.000
2014-10-01 00:00:00.000
2014-11-01 00:00:00.000
2014-12-01 00:00:00.000


RQ V
----------------------- -----------
2014-01-01 00:00:00.000 10
2014-05-01 00:00:00.000 50



...全文
180 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
木易随风 2014-12-12
  • 打赏
  • 举报
回复
谢谢两位帮忙
中国风 2014-12-12
  • 打赏
  • 举报
回复
SELECT a.RQ,b.V 
FROM @tb1 AS a 
INNER JOIN @TB2 AS b ON a.RQ>=b.RQ
WHERE b.RQ=(SELECT MAX(RQ) FROM @TB2 WHERE RQ<=a.RQ)
还在加载中灬 2014-12-12
  • 打赏
  • 举报
回复
SELECT T1.RQ,T3.V
FROM @tb1 T1
	CROSS APPLY(
		SELECT TOP 1 V FROM @TB2 T2
		WHERE T1.RQ>=T2.RQ ORDER BY T2.RQ DESC
	)T3

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧