Zum Inhalt springen

falsche Werte aus Produktiv DB mit den richtigen Werten der Migration DB ersetzen ??


z.t.i

Empfohlene Beiträge

Hallo Leute,

ich habe folgendes Problem. Ich muss aus der Tabelle Rechnung die Rechnungssumme in dem Schema mig (migration) mit der Tabelle Rechnung aus dem Schema prod in der produktivdatenbank auf falsch migrierte Rechnungssummen in der Produktivdatenbank prüfen.

Dieses habe ich auch gemacht siehe Code:

select migration.rechnung_summe NEU,migration.kunden_nr,prod.rechnung_summe ALT

from migr.migration_rechnung migr, seb.rechnungen@recprod prod

where migr.rechnung_art='Einzug'

and migr.kunde_nr(+) = prod.kunde_nr

AND migr.rechnung_nr(+) = prod.rechnung_nr

AND migr.rechnung_betrag(+) = prod.rechnung_betrag

AND migr.objekt_nr(+) = prod.objekt_nr

AND migr._gueltig_ab(+) = gor.pol_gueltig_ab

and migr.rechnung_offen='ja'

and migr.rechnung_historie='Aktuell'

and migr.rechnung_summe!=prod.rechnung_summe

and prod.rechnung_offen='ja'

and prod.rechnung_historie='Aktuell'

order by migr.kunde_nr asc

Als nächstes muss ich mit der richtigen (migration.rechnung_summe NEU) rechnungssumme die falsch migrierten rechnungssumme in der Produktivdatenbank ersetzen.

Wie kann ich das machen?? Ich wäre für jeden Tipp dankbar!!

Und würde mich sehr freuen, wenn Ihr mir weiterhelfen könnt.

Es wurde mir bereits empfohlen eine Tabelle zu erzeugen.. s.u.

1. create table tblmigkorrektur as select ...

und diese dann mit einem Update Befehl zu aktualisieren... s.u.

2. UPDATE ziel SET rechnung_summe

=(select korr.rechnung_summe_neu from tblmigkorrektur korr

where korr.kundenner=ziel.kundennr)

where kundennur in(select kundennr from tblmigkorrektur);

commit;

Da ich zu 1 nicht recht viel weiß würde ich mich sehr freuen wie ich das damit lösen könnte. Kennt jemand den Standard Syntax zu 1???

Wie könnte ich dass den lössen. Einfache meine Abfrage dahinein bauen??:hells::(:(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo robotto7831a,

danke für deinen Tipp.

Dann müsste es bei mir so ausschauen???

Kannst du evtl. nur ein Blick drauf werfen ob das so mit der syntax funktionieren könnte???

create table tblmigkorrektur as

Select migration.rechnung_summe NEU,migration.kunden_nr,prod.rechnung_summe ALT

from migr.migration_rechnung migr, seb.rechnungen@recprod prod

where migr.rechnung_art='Einzug'

and migr.kunde_nr(+) = prod.kunde_nr

AND migr.rechnung_nr(+) = prod.rechnung_nr

AND migr.rechnung_betrag(+) = prod.rechnung_betrag

AND migr.objekt_nr(+) = prod.objekt_nr

and migr.rechnung_offen='ja'

and migr.rechnung_historie='Aktuell'

and migr.rechnung_summe!=prod.rechnung_summe

and prod.rechnung_offen='ja'

and prod.rechnung_historie='Aktuell'

UPDATE seb.rechnungen@recprod prod SET prod.rechnung_summe

=(select korr.rechnung_summe from tblmigkorrektur korr

where korr.kunde_nr=prod.kunde_nr)

where gor.kunde_nr in(select kunde_nr from tblmigkorrektur);

commit;

Link zu diesem Kommentar
Auf anderen Seiten teilen

where gor.kunde_nr in(select kunde_nr from tblmigkorrektur);

Ersetze gor. durch prod.

Außerdem solltest Du dir die TBLMIGKORREKTUR mal ansehen. Die dortigen Spaltennamen sind mit den Aliasen identisch die Du auch im SELECT verwendet hast.

Die Spalten dort heißen also NEU, KUNDEN_NR und ALT. Die musst Du auch in deinem Update so verwenden. Aber ich wiederhole mich. :D

Evtl. wäre es noch vorteilhaft vor dem Update einen Index auf die Korrekturtabelle zu legen:

create index tblkorrektur_ix1 on tblkorrektur(kunden_nr,neu);

Dim

PS: Der UPDATE läuft natürlich nur, wenn die Kundennummer eindeutig ist. Sind dort doppelte Werte vorhanden bricht das Statement ab.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...