Как суммировать все транзакции по терминальному коду - PullRequest
0 голосов
/ 05 июня 2019

Я написал запрос в SQL Developer, однако у меня мало проблем;Цель состоит в том, чтобы суммировать все транзакции, которые произошли на терминале за дату

Я играл с count () и все еще не повезло, посмотрел несколько видео, но все равно ничего, я получаю одну транзакцию затерминал

SELECT 
   count(1) AS cnt,
   p.terminalcode AS terminal,
   trunc(p.clientdate) AS payment_date,
   p.otdnum,  
   sum((nvl(p.clientsum,0)) + (nvl(p.penaltysum,0))) AS total_sum,
   nvl(p.commissionsum,0) AS upper_commission

FROM payment_cp pcp
INNER JOIN committedpayments cp
ON cp.committedpaymentid = pcp.cp
INNER JOIN payments p
ON pcp.payment_id = p.paymentid



WHERE trunc(p.clientdate) BETWEEN :p_date_from and :p_date_to                          


GROUP BY p.terminalcode, 

     cp.pay_string, 
     p.clientsum, 
     p.commissionsum, 
     p.otdnum, 
     p.clientdate

Все, что я получаю, - это загруженные записи для терминалов и разбитые на одну транзакцию, я хочу, чтобы, скажем, транзакция терминала х 7 была суммирована, а не видела все 7 транзакций отдельно.

Любая помощь будет оценена

1 Ответ

0 голосов
/ 05 июня 2019

На ровном месте я бы сказал, что ваша группировка неверна и ваш счет.Если у вас есть уникальный идентификатор для транзакций, укажите его в подсчете, например COUNT(DISTINCT myID) AS cnt.Если вы видите больше строк, чем ожидаете, проверьте атрибуты в группе.Вы вероятно группируете по неправильному атрибуту.Я полагаю, вам следует удалить из вашей группы 'pay_string', 'clientsum', 'Commissionsum' и 'otdnum'.

...