Bereinigungsskript

Dieses Skript bereinigt etliche Daten, die dadurch entstehen, wenn nachträglich Adresshierarchien gebildet werden.

-- Rechnungen die bei einer Nebenadresse sind zur Hauptadresse umhängen.
-- dies kann zum Beispiel passieren, wenn man Hierarchie Bilden verwendet 
-- und eine Hauptadresse dabei zur Nebenadresse wird.
print 'Rechnungen von Nebenadressen zur Hauptadresse umhängen'
update View_Belege
set SuperId = a.VNummer
from 
View_Belege b, View_Adressen a 
where a.id = b.SuperId and a.Haupt = 'N' and b.Belegart = 'Ausgangsrechnung'

print 'Bei Tickets, die bei Nebenadressen sind die Nebenadresse als Ansprechpartner setzen'
update View_Tickets
set [Kunde Ansprechpartner] = Kunde
from 
View_Tickets t, View_Adressen a 
where a.id = t.Kunde and a.Haupt = 'N' and t.[Kunde Ansprechpartner] is null

print 'Tickets von Nebenadressen zur Hauptadresse umhängen'
update View_Tickets
set Kunde = a.VNummer
from 
View_Tickets t, View_Adressen a 
where a.id = t.Kunde and a.Haupt = 'N'

-- Betreut von zu den Hauptadressen umhängen
print 'Betreut von Partner von Nebenadressen zur Hauptadresse umhängen'
update View_Adressen
	set [Betreut von Partner] = p.VNummer
from 
	View_Adressen, View_Adressen p
where 
	View_Adressen.[Betreut von Partner] = p.ID and p.Haupt = 'N'

print 'Betreut von Distributor von Nebenadressen zur Hauptadresse umhängen'
update View_Adressen
	set [Betreut von Distributor] = d.VNummer
from 
	View_Adressen, View_Adressen d
where 
	View_Adressen.[Betreut von Distributor] = d.ID and d.Haupt = 'N'

-- Gibt es Leistungen die beim Kunden, als Partner oder Distri nicht bei der Hauptadresse 
-- sondern beim Ansprechpartner liegen? 
-- dies kann zum Beispiel passieren, wenn man Hierarchie Bilden verwendet 
-- und eine Hauptadresse dabei zur Nebenadresse wird.
print 'Leistung von Nebenadressen zur Hauptadresse umhängen'
update View_Leistung
set superid = a.VNummer
from 
View_Leistung l, View_Adressen a 
where a.id = l.SuperId and a.Haupt = 'N'

print 'Leistungspartner von Nebenadressen zur Hauptadresse umhängen'
update View_Leistung
set Partner = a.VNummer
from 
View_Leistung l, View_Adressen a 
where a.id = l.Partner and a.Haupt = 'N'

print 'Leistungsdistributor von Nebenadressen zur Hauptadresse umhängen'
update View_Leistung
set Distributor = a.VNummer
from 
View_Leistung l, View_Adressen a 
where a.id = l.Distributor and a.Haupt = 'N'

Mit Vorsicht prüfen

select * from View_TicketAngebote where not Ticket in (select id from View_Tickets)
select * from View_TicketAngebotPositionen where not TicketAngebot in (select id from View_TicketAngebote)
select * from View_TicketBeobachter where not Ticket in (select id from View_Tickets)
select * from View_TicketDokumente where not Ticket in (select id from View_Tickets)
select * from View_TicketKommentare where not Ticket in (select id from View_Tickets)
select * from View_Zeitbuchung where not Ticket in (select id from View_Tickets)

-- Doppelte Beobachter löschen
delete from View_TicketBeobachter where id in
(
    select min(id) from View_TicketBeobachter group by Benutzer, Ticket having count(*) > 1
)

Last updated