MSSQL Server 2008R2时间戳累积数据-间隔计算
我是SQL的新手 我们有每日和每小时的时间戳累积计数数据 将问题局限于日常数据 样本数据:MSSQL Server 2008R2时间戳累积数据-间隔计算,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我是SQL的新手 我们有每日和每小时的时间戳累积计数数据 将问题局限于日常数据 样本数据: 2008-01-01 123 2008-01-02 135 2008-01-03 150 2008-01-04 160 2008-01-05 170 所需的输出数据 Year Month CountOnDate1 CountOnDate2 CountOnDate3 CountOnDate4 CountOnDate5 ..so on 2008 JAN 0
2008-01-01 123
2008-01-02 135
2008-01-03 150
2008-01-04 160
2008-01-05 170
所需的输出数据
Year Month CountOnDate1 CountOnDate2 CountOnDate3 CountOnDate4 CountOnDate5 ..so on
2008 JAN 0 12 15 10 10
在MSSQL服务器2008R2上是否有一种高效、直接的方法来实现这一点。
到目前为止,我尝试的所有方法都太慢了。
我试过CTE,旋转。
没有一个表来存储可以计算的数据是有限制的。
希望我听起来不要太天真
寻找一些指导。
当做
阿杰
添加更多信息
我的问题有两个步骤
1.计算两个连续日期计数之间的差值
2.并将基于月日的差异透视到列中
步骤1:我有一个视图,它使用标量函数获取下一条记录并创建一个差值
View 1:
Sample Data:
Col1 Col2 Col3
2008-01-01 123 0
2008-01-02 135 12
2008-01-03 150 15
2008-01-04 160 10
2008-01-05 170 10
步骤2:
从视图1创建交叉选项卡轴
SELECT * FROM (SELECT MONth(Col1) AS MonthNumber, 'D' + CONVERT(nvarchar(5), DAY(Col1)) AS ConsumptionDay, Col3) AS Sample_Value, ltrim(CONVERT(nvarchar(3), Col1, 107)) AS ConsumptionMonth, ltrim('Y' + CONVERT(nvarchar(4), Col1, 120)) AS ConsumptionYear
FROM View 1) src
PIVOT (sum(Sample_Value) FOR ConsumptionDay IN ([D1], [D2], [D3], [D4], [D5], [D6], [D7], [D8], [D9], [D10], [D11], [D12],
[D13], [D14], [D15], [D16], [D17], [D18], [D19], [D20], [D21], [D22], [D23], [D24], [D25], [D26], [D27], [D28], [D29], [D30], [D31])) AS pvT
我相信,我做错了什么
希望有人能帮忙
Ajay这里的关键字是sql语法中的PIVOT,您实际尝试了什么?查询的速度可能是由于索引,而不是数据的旋转方式。