具有多个条件的SQL求和

时间:2015-10-16 14:30:38

标签: sql

我有一张这样的表

Link  PeriodiD Debit   Credit  Project
1      49       -       200     1
1      49       200     -       2
1      49       100             0 
1      50       50      -       1
2      49        -      600     0

我想要一个脚本来计算每个时段的每个链接的借方和贷方,无视项目。

所以答案应该是

Link  PeriodiD TotalDebit   TotalCredit
1      49       300          200     
1      50       50           -           
2      49       -            600   

我有超过60个periodID和100多个链接。

请协助制作这样的剧本

1 个答案:

答案 0 :(得分:0)

使用具有聚合函数的分组。

SELECT Link,
       PeriodID,
       SUM(TotalDebit) AS TotalDebit,
       SUM(TotalCredit) AS TotalCredit
FROM tablename
GROUP BY Link, PeriodId;

如果您可以具有NULL值,则此查询可能并不总是给出预期结果,具体取决于您使用的DBMS。您可以像这样修改它以解决这种情况:

SELECT Link,
       PeriodID,
       SUM(COALESCE(TotalDebit,0)) AS TotalDebit,
       SUM(COALESCE(TotalCredit,0)) AS TotalCredit
FROM tablename
GROUP BY Link, PeriodId;