Hej Michael!
Her var lidt af det jeg skulle bruge - tusind tak :-)
Først prøvede jeg den hvor der bare stod sum(Belob). Denne virkede, men når jeg så afprøvede den gav den et forkert resultat. hvis jeg f.eks. indtaster to rækker, en med Belob = 100 og en med Belob = 200, så skulle Saldo jo gerne give 100 og 300. Men den giver bare 100 og 200, så den gentager sådan set bare Belob. Hvad kan der være galt her.
Den anvendte Querystring ser således ud:
SELECT id, UserID, Dato, Rentedato, Tekst, Belob, Gennemfort, kid, SUM(Belob) AS Saldo
FROM Transaktioner
GROUP BY id, UserID, Dato, Rentedato, Tekst, Belob, Gennemfort, kid
Kan det være fordi jeg skal ændre på min update, insert og delete statement?
Hvis jeg anvender løsningen med (SELECT Sum(belob) As Saldo)... så virker det overhovedet ikke. Den accepterer ikke noget med SELECT inde i en SELECT sætning. Hvad kan der være galt her? Det var faktisk denne jeg helst ville bruge.
Hvis man jo lige får varmet tænkeren op før man svarer, så hjælper det jo nok lidt.
du kan ikke lave den kombination som du forsøger grundet at flg. give X rækker:
- SELECT * FROM Transaktioner
Mens flg. kun giver én uanset hvordan det gøres:
- SELECT SUM(Belob) FROM Transaktioner
Skal du have den akkumuleret sum for hver bruger, kan du ikke få de enkelte transaktioner.
Det eneste der kan virker for en akkumulering for alle brugere bliver flg.:
- SELECT UserID, SUM(Belob) AS Saldo FROM Transaktioner GROUP BY UserID
Ellers kan du muligvis gøre flg.:
- SELECT id, UserID, Dato, Rentedato, Tekst, Belob, Gennemfort, kid, (SELECT SUM(Belob) FROM Transaktioner GROUP BY UserID WHERE UserID = T.UserID AND Dato <= T.Dato) AS Saldo FROM Transaktioner as T
Så kan du måske fange den kronologiske akkumlering.