Jag har ett trigger problem. Jag skulle vilja läsa ut det maximala värdet ur fältet Mätarställning, se koden nedan. Problemet med den koden är att jag får felmeddelandet 'An aggregate may not apper in the set list of an UPDATE statement'. DECLARE @foo int Vet inte om detta går men du kan ju testa: Om det inte är en INSTEAD OF trigger (endast SQL Server 2000) så gör det inte någon skillnad att uppdatera INSERTED tabellen, eftersom den bara innehåller en kopia på de rader som redan har lagts till i originaltabellen.MERA Trigger problem.
Hur skall jag göra för att lösa detta??
UPDATE dbo.Bränslekostnader SET Kilometer = (B.Mätarställning - MAX(A.Mätarställning) )
FROM dbo.Bränslekostnader A, INSERTED B
WHERE A.Mätarställning <> B.Mätarställning AND A.BilID=B.BilID AND A.Bränsle=1 AND B.Bränsle=1
//UJSv: MERA Trigger problem.
SELECT @foo = (B.Mätarställning - MAX(A.Mätarställning))
FROM dbo.Bränslekostnader A, INSERTED B
WHERE A.Mätarställning <> B.Mätarställning AND A.BilID=B.BilID AND A.Bränsle=1 AND B.Bränsle=1
UPDATE dbo.Bränslekostnader SET Kilometer = @fooSv: MERA Trigger problem.
UPDATE INSERTED Main SET Main.Kilometer = (Main.Mätarställning - (SELECT MAX(Sub.Mätarställning) FROM dbo.Bränslekostnader Sub WHERE Sub.Mätarställning <> Main.Mätarställning AND Sub.BilID = Main.BilID AND Sub.Bränsle = 1))
WHERE Main.Bränsle = 1Sv: MERA Trigger problem.