i ett av mina DB fält har jag en kommaseparerad sträng med massa värden.. Om talen kommer från en kolumn i din tabell bör du starkt överväga att designa om din datastruktur. Jag tror att du måste beräkna summan utanför din sql. Vad jag har förstått så används sql till att hantera data genom att placera och söka i tabellens kolumner. Synd, för den som designat alla de databaser jag jobbar mot hade inte insett fördelen med databaser.. utan kört hårt på kommaseparerade strängar..:( Utvecklar du i Access? åh, det var lätt.. Hej, lite sent in i denna diskussion, Jag har oxå en db med kommasep. (Access) Jag skulle vilja summera ihop de kommaseparerade talen i en ny kolumn i databasen, eller är det bättre att försöka göra det senare via en ASP sida. Men hur kan jag använda den modulen i tabellen? Går det eller måste jag ställa den i en fråga, hjälp hur gör jag.......summera en kommasp. sträng i SQL/access
tex:
2,5,7,8,5,4,3,3,2
vill direkt i min SQL sats beräkna summan av dessa..
försökte med:
"Select SUM(split(dbstr,",")) FROM ...." i access
men det funkade inte, tydligen finns inte funktionen split, trots att det är en giltig VB-funktion..
Finns det ngt annat sätt att göra det på? om man inte vill använda for-loopar..Sv: summera en kommasp. sträng i SQL/access
Sv: summera en kommasp. sträng i SQL/access
Du vill tydligen beräkna summan av alla tal i en sträng som bara ligger i en kolumn. Vad jag vet finns det ingen sådan funktion i sql.Sv:summera en kommasp. sträng i SQL/access
Sv: summera en kommasp. sträng i SQL/access
Du kan då använda funktioner i dina frågor.
Lägg till följande funktion i en modul:
Public Function SumField(Value As Variant) As Variant
Dim Temp As Variant
Dim Values As Variant
If Len(Value) > 0 Then
Values = Split(Value, ",")
For Each Temp In Values
If IsNumeric(Temp) Then
SumField = SumField + CDbl(Temp)
End If
Next
Else
SumField = Null
End If
End Function
Sv:summera en kommasp. sträng i SQL/access
tackar.. nu öppnade du en helt ny värld för mig.. visste inte att man kunde göra så.:)Sv: summera en kommasp. sträng i SQL/access