SQL,尝试将值总计为特定值

时间:2018-10-25 08:51:13

标签: sql sql-server

我有一个问题,我在一侧(a)上有大量值,并且需要在另一侧(x)上将它们求和为单个值。没有逻辑分组可以得出总值(x)

在(a)侧,有(10000)个项目需要在(z)侧求和为单个值。求和(z)并不需要(a)边的所有值

(a)                 (z) 
123.                2
321.                19
234.                100
122
1
23
1
19
77

预期输出:

(a) 1, 1.     = (z) 2
(a) 19.       = (z) 19
(a) 23, 77.   = (z) 100

求和(a)等于(z)中的值

我当前的代码按日期分组,但由于我没有预定义的日期范围,因此现在无法使用。

当前代码:

Select * From
(
    Select sum(amount), date
    From (a)
    Group by date
) a
Inner join 
(
    Select amount,date
    From (z)
) b on a.date = b.date
Where a.Amount - b.Amount = 0

1 个答案:

答案 0 :(得分:0)

这听起来像是自我加入:

select z.z, a1.amount, a2.amount
from z z left join
     (a a1 left join
      a a2
      on a1.amount < a2.amount
     )
     on z.amount = a1.amount + coalesce(a2.amount, 0);