Нужно найти дубликаты записей для записей, которые существуют после указанной даты - PullRequest
0 голосов
/ 06 июля 2018

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


Account Company  Ledger P01   P02---P12              Date
1000     XYZ      XX     0   20                    07/06/18
2000     XYZ      XX     0   30                    07/06/18
1000     XYZ      XX     10  30                    07/01/18
3000      XYZ     XX     20  50                    06/05/18
Cutoff date =  07/05/18
Expected result
Account Company           Ledger      P01 P02---P12 
1000       XYZ             XX         10   50  
2000      XYZ              XX          0   30 

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Я думаю, что следующее должно заставить вас хотеть.

with MYDATA as (
    select distinct Account as Act, Company as Cmp, Ledger as Ldgr
    from MYTABLE
    where Date > Cutoff_Date)
select Account, Company, Ledger, sum(P01), sum(P02)
from MYTABLE join MYDATA
    on Account = Act and Company = Cmp and Ledger = Ldgr
group by Account, Company, Ledger
0 голосов
/ 06 июля 2018

Я не тестировал его на iSeries

SELECT account, company, ledger, sum(P01) , sum(P02) 
from test_1 t
where exists (select 1 from test_1 
               where date1 > '2018-07-05' 
                 and account =  t.account 
                 and company = t.company 
                 and ledger = t.ledger)
group by account, company, ledger

Из-за вашего разреженного описания столбцы группировки или имена столбцов могут нуждаться в некоторой корректировке

...