BLRCP "Rech.Eing.Pos.-Rückstände" >alte Einträg

Allgemeine Diskussionen um die ERP Software AvERP

Moderator: SYNERPY

Antworten
Thomas Rogge
Beiträge: 159
Registriert: Mi Mär 04, 2009 10:45 am

BLRCP "Rech.Eing.Pos.-Rückstände" >alte Einträg

Beitrag von Thomas Rogge »

Moinsen zusammen,

wir haben in der Tabelle der Eingangsrechnungsrückstände jede Menge alte Einträge, wo wir noch keine Eingangsrechnungen erfasst haben und dies auch nicht nachholen möchten. Jetzt müsste ich ja jeden einzelnen Rückstand stornieren, dies möchte ich aber mit einem SQL-Befehl lösen.

Es handelt sich dabei um Rückstandspositionen mit Bestellnummern eines Mandanten, die mit 7109 beginnen.

So, mit folgendem SQL-Befehl kann ich ja einzelne Einträge korrigieren:

Code: Alles auswählen

UPDATE BLRCP SET RG_BUCHUNGSART = 100 WHERE ID = [ID-Nr]
Das funkioniert soweit. Und mit folgendem SQL-Befehl bekomme ich auch meine gewünschten Einträge:

Code: Alles auswählen

SELECT A.ID FROM BLRCP A
 LEFT OUTER JOIN BBESP B ON A.BBESP_ID_BESTNRPOS = B.ID
 LEFT OUTER JOIN BBES C ON B.BBES_ID_LINKKEY = C.ID
WHERE C.BMAND_ID = 1 AND C.MASKENKEY STARTING WITH '7109' AND A.RG_BUCHUNGSART IS NULL
Das funkioniert auch ganz prima.

Aber was ich nicht hinbekomme ist die Kombination dieser beiden Befehle um diesen dann im SQL-Direktfenster in AvERP auszuführen. Wenn ich das so kombiniere:

Code: Alles auswählen

UPDATE BLRCP SET RG_BUCHUNGSART = 100 WHERE ID =
(SELECT A.ID FROM BLRCP A
 LEFT OUTER JOIN BBESP B ON A.BBESP_ID_BESTNRPOS = B.ID
 LEFT OUTER JOIN BBES C ON B.BBES_ID_LINKKEY = C.ID
WHERE C.BMAND_ID = 1 AND C.MASKENKEY STARTING WITH '7109' AND A.RG_BUCHUNGSART IS NULL)
kommt eine Fehlermeldung, dass ein unbekannter SQL-Fehler aufgetreten ist, eine eckige Klammer bringt auch nichts...... :cry:

Hat jemand einen Tipp für mich?

Viele Grüße
Thomas
Software-Version: 6.6.10.0
DB-Version: AVERP2018.03
Server: Windows 10 Pro Intel Xeon E3-1230v6 - 16GB RAM
50 User
informatikus
Beiträge: 20
Registriert: Do Okt 08, 2009 9:26 pm
Wohnort: Immenstadt

Beitrag von informatikus »

Hallo Thomas,

da der Select mehrere Reihen zurückgeben kann, muss für die WHERE-Bedingung die IN-Funktion verwendet werden:

Code: Alles auswählen

UPDATE BLRCP SET RG_BUCHUNGSART = 100 WHERE ID IN
(SELECT A.ID FROM BLRCP A ...
Schönen Gruß
"Vertrauen Sie mir. Ich weiß, was ich tue!" - Sledge Hammer
Thomas Rogge
Beiträge: 159
Registriert: Mi Mär 04, 2009 10:45 am

Beitrag von Thomas Rogge »

Moin informatikus,

:) vielen Dank, das war es....hast mir sehr geholfen.

Viele Grüße
Thomas
Software-Version: 6.6.10.0
DB-Version: AVERP2018.03
Server: Windows 10 Pro Intel Xeon E3-1230v6 - 16GB RAM
50 User
Antworten