【发布时间】:2014-12-23 05:15:11
【问题描述】:
有人可以帮助查询以下问题
返回表
Id Factor monthlyReturns price date
A1 0.2 0.001 2010-01-29
A1 0.2 0.003 2010-02-26
A1 0.2 0.004 2010-03-31
A1 0.2 0.004 2010-04-30
A2 0.1 0.001 2010-01-29
A2 0.1 0.001 2010-02-26
A2 0.1 0.001 2010-03-31
A2 0.1 0.001 2010-04-30
A3 0.3 0.03 2010-01-29
A3 0.3 0.04 2010-02-26
A3 0.3 0.05 2010-03-31
A3 0.3 0.05 2010-04-30
A4 0.4 0.12 2010-01-29
A4 0.4 0.12 2010-02-26
A4 0.4 0.14 2010-03-31
A4 0.4 0.15 2010-04-30
我想将此数据转换为以下格式。有人可以提出查询
A1 A2 A3 A4 Total
31-Jan-10 0.001 0.001 0.03 0.12 0.001*0.2(Factor for A1)+0.001*0.1(Factor forA2)+
0.03*0.3(Factor forA3)+ 0.12*0.4(Factor forA4)
28-Feb-10 0.003 0.001 0.04 0.12 Same as above
31-Mar-10 0.004 0.001 0.05 0.14 Same as above
30-Apr-10 0.004 0.001 0.05 0.15 Same as above
谢谢
【问题讨论】:
-
PIVOT 是您要查找的关键字。但是你必须知道这些值,否则你将不得不使用动态 SQL。堆栈中已经存在几个示例:stackoverflow.com/questions/16417484/tsql-complex-pivot 一个。
-
输入数据中没有 31-Jan-10。输出数据中怎么会产生这样的日期?
-
@Giorgos - 这是表中的原始数据,但在报告中显示的是月末日期。所以可以忽略。