Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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::(:(

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;

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.