添加和乘法表'数据按另一个表中的值

时间:2014-07-31 21:03:13

标签: sql-server sql-server-2008

假设我有一个按日期排序的减法和分区表:

tblFactors
dt            sub    divide
2014-07-01     1      1
2014-06-01     0      5
2014-05-01     2      1
2014-05-01     0      3

我有另一个值表,按日期排序:

tblValues
dt             val
2014-07-05      4
2014-06-15      5
2014-05-15      21
2014-04-14      31
2014-03-15      71

我需要执行一些顺序计算。对于tblFactors中的第一个值,我需要从val的每个tblValues.dt < '2014-07-01'中减去1。

接下来,我需要处理tblFactors中的第二行。没有什么可以减去的。但是,divide = 5意味着我需要将每val除以tblValues.dt < '2014-06-01'的5。棘手的是我需要在之前行的修改后的val上执行此操作(除以20/5,而不是21/5)。

tblFactors中的每一行都会以这种方式处理,给出如下序列:

                tblFactors:    Row 1        Row 2          Row 3        Row 4

Dt          Original Val    Subtract 1   Divide by 5     Subtract 2  Divide by 3
7/5/2014    4               
6/15/2014   5                    4          
5/15/2014   21                  20           4      
4/14/2014   31                  30           6           4  
3/25/2014   71                  70          14          12              4

这会让我:

   qryValues
    dt             val
    2014-07-05      4
    2014-06-15      4
    2014-05-15      4
    2014-04-14      4
    2014-03-15      4

现在我在R的循环中进行向量乘法。我想知道在本机sql中是否有一种聪明的方法可以实现这一点。我尝试过一些聚合但是我的成功有限。

0 个答案:

没有答案