2015-10-16 5 views
0

У меня есть таблица, как этот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 ссылки.

Пожалуйста помогите сделать такой скрипт

+4

Вы должны изучить 'GROUP BY' и' SUM() '. – Siyual

ответ

0

использовать группу по с агрегатными функциями.

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

Этот запрос не всегда может дать ожидаемый результат, если вы можете иметь NULL значения, в зависимости от СУБД, которые вы используете. Вы можете изменить его так, чтобы учесть эту ситуацию:

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

Большое спасибо, это сработало для меня. – smucheke

+0

Привет @smucheke. Вы должны принять этот ответ как правильный ответ, если он ответит на ваш вопрос. – wvdz

Смежные вопросы