Einzelnen Beitrag anzeigen

BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hamburg
849 Beiträge
 
Delphi 11 Alexandria
 
#1

Wie Update mit max() pro Gruppe

  Alt 28. Okt 2017, 22:14
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Hallo,

ich habe eine Tabelle RechnungPos mit RechnungsNr und PositionsNr. Die PositionsNr gibt die Reihenfolge von Artikeln auf einer Rechnung an. *Einige* Rechnungen enthalten die Postion 999, die per SQL in die nächste freie PositionsNr < 999 geändert werden soll. So soll das aussehen:

Code:
RechnungNr PositionsNr
1           1
1           2
1           999  wird zu 3
2           1
2           2
2           3
2           999  wird zu 4
3           999  wird zu 1
4           1
4           2
Mein Ansatz:
update RechnungPos set PositionsNr max(PositionsNr)+1 where PositionsNr 999
Problem dabei ist max(PositionsNr) wird die 999 zurückgeben und wie kann man das pro RechnungNr setzen/abfragen?
  Mit Zitat antworten Zitat