Microsoft Cosmos Scope Script:如何逐行处理数据?

时间:2017-12-19 00:37:05

标签: c# scope cosmos

我想做的一个例子:

现有表格:

1st Table name: DistinctAcctDay;
Column name: ID int, AccountingDate datetime;
Values: (1, 2017/05/01);
 (2, 2017/08/01);
 (3, 2017/09/01);


2nd Table name: TransferOut;
Column name: AccountingDate datetime; Amount decimal;
Values: (2017/01/01, 10);
(2017/02/01, 13);
(2017/06/25, 15);
(2017/08/03, 18);
(2017/08/08, 30);

我想让Scope脚本返回低于3(或n,取决于第一个表中存在多少行)输出当天之前所有历史数据的总和:

1)第1表中2017/05/01之前的第2表中的金额:数字应为23;

2)第一张表中2017/08/01之前的第二张表中的金额:数字应为10 + 13 + 15 = 38;

3)第1表中2017/09/01之前的第2表中的金额:数字应为10 + 13 + 15 + 18 + 30 = 86;

脚本应该用Cosmos Scope脚本编写。 **我曾经问过类似的问题,但没有用正确的方式描述它使用USQL。它是Scope脚本而不是USQL。因此,我再次使用正确的描述发布。*

// 我在想它可能需要使用C#在用户定义的Function / operator中编写循环。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

@result = 
    SELECT d.Id, SUM(Amount) AS sumAmount
    FROM  @DistinctAcctDay AS d
    CROSS JOIN @TransferOut AS t
    WHERE d.AccountingDate >= t.AccountingDate 
    GROUP BY d.Id;