webForumDet fria alternativet

Sammanfoga text och tal-dubletter i tabell

Databaser & SQLur Databashanterare & SQL

3 svar · 555 visningar · startad av peter233

Medlem sedan jan. 20074 inlägg
Frågan#1

Hej!

Behöver hjälp med en SQL-sats, jag har en tabell med följande kolumner:

ID, Saldo, Plats
1___5____A
2___10___A
2___15___B
3___1____A
4___1____A
4___2____B
4___3____C
4___3____D
5___5____A

Jag vill göra om denna tabell så att Saldo och Plats summeras per ID. Kolumen "Plats" skall slås ihop på sättet: A,B,C etc så att resultatet blir:

ID, Saldo, Plats
1___5____A
2___25___A,B
3___1____A
4___9____A,B,C,D
5___5____A

Går detta att göra?

Medlem sedan dec. 200012 464 inlägg
#2

Jo det går. Exakt hur beror på vilken databashanterare du använder.

Medlem sedan jan. 20074 inlägg
#3

Oj, det glömde jag skriva, jag använder Access 2002.

Medlem sedan dec. 200012 464 inlägg
#4

Jaha, i Access går det inte att lösa med en sqlfråga. Jag skulle hantera det i applikationen. T.ex (pseudo vb)

set rs =  conn.execute("select id,saldo, plats from t order by id")
pid = 0
saldo = 0
platser = ""
while not rs.eof
  if cint(rs("id")) <> pid then
     if  platser <> "" then
' visa tidigare värden
        response.write pid & "  " & saldo & " " & platser
        saldo = 0
        platser = ""
     end if
     pid = cint(rs("id"))
     saldo = saldo + cint(rs("saldo"))
     if  platser <> "" then
         platser = platser & ","
     end if
     platser = platser & rs("plats")
     rs.movenext
wend
if  platser <> "" then
    'skriv ut sista
    response.write pid & "  " & saldo & " " & platser
end if
131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)