webForumDet fria alternativet
Logga in / Bli medlem

Snårig update i MS SQL

Databaser & SQL

1 svar · 284 visningar · startad av mo:d:fi

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

Hej!

Jag har ett litet dilemma med en sammanställning som jag kämpar med att få uppdateringen av den att fungera.
Jag har i en användartabell 3 kolumner med sammanställningar från en annan tabell. Kort sagt kan man säga att sammanställningarna är antalet rader en användare har i den andra tabellen med ena kolumnen satt till ett av tre värden.
Typ exempel.

Tabell Användare:
antalG antalVG antalMVG

Tabell Prov
ProvID kursID användarID betyg

Nu försöker jag få till uppdateringen av en grupp användare när man tar bort ett prov, dvs för alla som hade g på det provet skall kolumnen antalG decrementeras i användartabellen o.s.v. för alla användare beroende på vilket betyg de hade och om de fanna i provtabellen för aktuellt prov.
Det finns även en tabell kurser med kurskopplingar för användarna.

Jag funderar på någon form av CASE sats men eftersom provtabellen kan vara väldigt stor vil jag inte köra en exists select sats i varje case statement som sedan körs för varje användare.

Någon som ett tips för en MS SQL 2005 SP lösning för detta?

Medlem sedan dec. 19996 721 inlägg
#2

Gör inte en dekrementerande update. Gör en total omberäkning av alla kolumnerna, för de användare som berörs av kursen.

257 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)