Detlev Eberhardt, 01/2020
Beispiel Weigerstorfer suche nach Dubletten eines Kreditors:
set dateformat dmy;
with cte as (
select * from [dwdata].[dbo].[TEST]
where DWSTOREDATETIME between '20.12.2019' and '08.01.2020'
)
select
BELEGART,
[KUND___LIEFNR],
BELEGNR,
count(*) as Anzahl,
MIN(DWSTOREDATETIME) AS firstdate,
MAX(DWSTOREDATETIME) AS lastdate,
MIN(DWDOCID) as AELTESTEDOCID,
CONVERT(varchar(10),MAX(DWDOCID)) + ',' as JUENGSTEDOCID
from cte
where [KUND___LIEFNR] ='70701'
group by
[KUND___LIEFNR],
BELEGART,
BELEGNR
having COUNT(*) > 1
order by lastdate
Ab hier kopieren der letzten Spalte aus dem Ergebnis und für Updateskript (tech.Status = Ungültig) verwenden.
update dwdata.dbo.TEST
set TECHN__STATUS = 'ungültig'
where DWDOCID IN (
3283137,
3293892, ...)