ГРУППА ПО ИСПОЛЬЗОВАНИЮ СЧЕТА CLAUSE на 5 столбцов DB2 [Отвечено] - PullRequest
0 голосов
/ 09 января 2020

У меня 5 столбцов, я должен проверять один и тот же номер счета более одного раза.

Таблица:

In  Out AccountNumber   Amount  Status
----------------------------------------
1   2   32345678        458.00  Accepted
12  7   12345678        958.00  Rejected
4   5   12345678        478.00  Rejected
6   1   21345678        408.00  Accepted

Желаемый результат: 12 7 12345678 958.00 Отклонено

Это мой запрос:

SELECT AccountNumber, Amount, Status, Out, In
FROM FTM.Table
GROUP BY AccountNumber
HAVING COUNT (AccountNumber) > 1

Любая помощь с благодарностью.

1 Ответ

0 голосов
/ 09 января 2020

Попробуйте:

Select AccountNumber, Amount, Status, Out, In
From
(
SELECT AccountNumber, Amount, Status, Out, In
, rownumber() over (partition by AccountNumber) rn
, count(1) over (partition by AccountNumber) cnt
FROM FTM.Table
)
where cnt>1 and rn=1;

Присоединение к другому столу

WITH TAB (ID, In, Out, AccountNumber, Amount, Status) AS 
(
VALUES
  (1,  1, 2, 32345678, 458.00, 'Accepted')
, (2, 12, 7, 12345678, 958.00, 'Rejected')
, (3,  4, 5, 12345678, 478.00, 'Rejected')
, (4,  6, 1, 21345678, 408.00, 'Accepted')
)
Select T1.AccountNumber, T1.Amount, T1.Status, T2.Out, T2.In 
From 
( 
SELECT AccountNumber, Amount, Status, Out, In, ID
, rownumber() over (partition by AccountNumber) rn
, count(1) over (partition by AccountNumber) cnt 
FROM TAB
) T1 
JOIN TAB T2 
ON T2.ID = T1.ID 
where T1.cnt>1 and T1.rn=1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...