0

我想做的一个例子:

现有表:

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)第一表2017/05/01之前日期的第二表总和:数字应为23;

2)第一表2017/08/01之前日期的第二表总和:数字应为10+13+15 =38;

3)第一表2017/09/01之前日期的第二表总和:数字应为10+13+15+18+30=86;

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

// 我在想它可能需要使用 C# 在用户定义的函数/运算符中编写循环。

感谢帮助。

4

1 回答 1

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;
于 2017-12-20T21:33:11.000 回答