代码之家  ›  专栏  ›  技术社区  ›  beta

基于其他列的TSQL聚合值

  •  -1
  • beta  · 技术社区  · 6 年前

    我有一张桌子,看起来如下

    Amount  Factor  Month   Customer
    1       1       2       A   
    3       1       2       A
    4       -1      2       A
    2       1       2       B   
    2       1       2       B
    3       -1      2       B
    4       1       3       A   
    5       1       3       A
    6       -1      3       A
    

    Amount Month Customer . 这个 数量 s应与列中的值相乘 Factor .

    UPDATE 对于同一个表或新表):

    Amount  Factor  Month   Customer
    0       1       2       A   
    1       1       2       B   
    3       1       3       A
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Mudassir Hasan    6 年前

    试试下面

    SELECT SUM(Amount * Factor) as Amount,Month,Customer
    FROM tableName
    GROUP BY Month,Customer
    
        2
  •  2
  •   Gordon Linoff    6 年前

    我想这就是你想要的:

    select month, customer, sum(amount * factor) as sum_amount
    from t
    group by month, customer;
    

    我不知道你为什么要 factor 在结果集中。