SQL Beispiel um aus einer 1:N Tabelle die jeweils höchste Nr der Detailtabelle zu ziehen
–Holt sich die Netto Angebotssumme aus dem letzten (höchste Angebotsnr) zum Projekt
select ANR, BRUTTOWERT-USTWERT as Netto, PROJEKTNR from
(
SELECT MAX(PA.ANGEBOTSNR) as ANR, PA.ProjNr FROM (select Angebotsnr, Projnr from Angebot A inner JOIN Projekt P ON P.ProjNr = A.PROJEKTNR) as PA GROUP BY PA.ProjNr
) as MAXA inner join Angebot A on A.ANGEBOTSNR = MAXA.ANR
Alternativ könnte man das jetzt über eine Hilfstabelle (projekte) in ein gesondertes Datenfeld schreiben.
declare @projekte table (ANGEBOTSNR nvarchar(max), PROJEKTNR nvarchar(max), netto float)
insert into @projekte
select ANR, PROJEKTNR, BRUTTOWERT-USTWERT as Netto from
(
SELECT MAX(PA.ANGEBOTSNR) as ANR, PA.ProjNr FROM (select Angebotsnr, Projnr from Angebot A inner JOIN Projekt P ON P.ProjNr = A.PROJEKTNR) as PA GROUP BY PA.ProjNr
) as MAXA inner join Angebot A on A.ANGEBOTSNR = MAXA.ANR
Update Projekt set Benutzer9 = PR.netto from Projekt P inner join @projekte PR on PR.PROJEKTNR = P.ProjNr
SQL um Wagenrücklauf (CR) und Zeilenvorschub (LF) zu entfernen
CHAR(13)
Line Feed (LF)oder Zeilenvorschub heisst nach unten in die nächste Zeile
CHAR(10)
ProjNr,ProjAdr,Replace(Replace(ProjBezeichnung,CHAR(10),‘ ‚),CHAR(13),‘ ‚) as ProjBez,AuftragsSumme,P.AbtNr
neuesten aktuell bestätigten Liefertermin als Job setzen
update Bestellung set Bestellung.LieferTerminBestaetigt=A.LTPos
FROM ( select max(BP.LieferTerminBestaetigt) as LTPos, B.BestellNr from BestellPos BP INNER JOIN
Bestellung B ON BP.BestellNr = B.BestellNr group by B.BestellNr ) A where A.BestellNr = Bestellung.BestellNr and A.LTPos is not null