webForumDet fria alternativet

sum i selct sats

2 svar · 486 visningar · startad av Arne

ArneMedlem sedan maj 2000267 inlägg
#1

Har en tabell i sql server med tävlingsresultat (resultat) och har kört fast i beräkning av cuppoäng.

Man kan vinna 3 cupper och varje cupp är beräknad på vilken grupp man deltagit i, och i vilken klass man fick poäng i.
I detta fall ska man ha deltagit i grupp "a" (fins a, b, c)

Man ska även ha fått poäng i någon av klasserna MC, MP1, MP4, MPV, MPO, MS1, MS2

I kolumnen "grupp" finns det bara värdet a, b eller, c
I kolumnen "klass" finns det ett 20 tal olika förkortningar, bland annat MC, MP1, MP4, MPV, MPO, MS1, MS2

I kolumnen "poäng" kan talet vara från 0 till 12

Jag vill alltså att den som har högst poäng efter grupp och klass kriterierna ska visa längst upp och sedan fallande ordning allt grupperat efter namn.

Men jag får inte select satsen nedan att stämma
Har en person som vunnit 3 tävlingar (ska då få 36 poäng) i gruppen a. Två i klassen MP1 och en i klassen MS1
Men jag får resultatet att personen visas två ggr, en med 24 poäng och en med 12 poäng

Vad gör jag för fel?

SELECT  sum(Poäng) As Points, klass, grupp, namn
FROM resultat
Where grupp = 'a'
And klass in ('MC', 'MP1', 'MP4', 'MPV', 'MPO', 'MS1', 'MS2')
Group By namn, klass, grupp
Order By Points DESC
emissionMedlem sedan dec. 19996 721 inlägg
#2

Du kan inte ha med "klass" i kolumnlistan/grupperingen om du vill att den ska summera rätt. Din nuvarande SQL frågar efter "poängsumman för varje unik gruppering av namn,grupp och klass".

ArneMedlem sedan maj 2000267 inlägg
#3

select sum

Tack, nu verkar det blivit rätt
Är det så här du tänkte?

SELECT     SUM(Poäng) AS Points, Grupp, Namn
FROM         resultat
WHERE     (Grupp = 'a') AND (Klass IN ('MC', 'MP1', 'MP4', 'MPV', 'MPO', 'MS1', 'MS2'))
GROUP BY Namn, Grupp
ORDER BY Points DESC

En fråga till. Är det en vettig/rätt uppställning av select satsen, eller kan jag/ska jag göra på annat sätt?

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)