De jag skulle vilja ha hjälp med är hur man gör för att kunna räkna ut summan av TOP 5 bästa resultaten från olika individers tävlingsresultat. Följande borde väl fungera. Du måste sortera för att få ut de högsta värdena : Är det något sånt här du vill göra:SUM och top, SQL sats hjälp
Har idag en tabell med namn, en tabell med resultat samt poängen för de alla de olika tävlingarna och en tabell med tävlingar(information mest)
De jag vill är att räkna ut summan av individen 5 bästa resultat.
SELECT SUM(poang) as top5 FROM (SELECT top 5 poang from utst_resultat WHERE hundnr =12);
men här måste man sätta ut manuellt ett id för vilken de ska räkna ut.. vill helst undvika detta då de ska skrivas ut i en datalist sedan SAMT att med denna så får man inte ut informationen från tillhörande tabell.
Förslag hur man gör? börjar bli gråhårig av alla olika försök.
Använder idag:
<code> Dim strsql As String = "SELECT Sum(Utst_resultat.poang) AS p, Count(utstnr) AS antutst, Hund.hundnamn, Hund.kon"
strsql = strsql + " FROM Utst_resultat INNER JOIN Hund ON Utst_resultat.hundNr = Hund.hundnr"
strsql = strsql + " GROUP BY Utst_resultat.hundNr, Hund.hundnamn, Hund.kon HAVING ((Not (Sum(Utst_resultat.poang))=0) AND ((Hund.kon)='T')) ORDER BY Sum(Utst_resultat.poang) DESC;"
</code>
för att få ut totala poängen samt ant utställningarSv: SUM och top, SQL sats hjälp
SELECT TOP 5 SUM(poang) as top5 FROM utst_resultat WHERE hundnr =12 ORDER BY Poang DESC
Jag är dock lite osäker på i vilken ordning saker och ting utförs här så möjligen måste du skriva
SELECT SUM(poang) as Top5 FROM (SELECT TOP 5 poang FROM utst_resultat WHERE hundnr =12 ORDER BY Poang DESC)Sv: SUM och top, SQL sats hjälp
SELECT Hund.hundnr, Hund.hundnamn, Hund.kon,
(SELECT SUM(poang) as top5
FROM (SELECT TOP 5 utst_resultat.poang
FROM utst_resultat
WHERE utst_resultat.hundnr = Hund.hundnr
ORDER BY utst_resultat.poang DESC)) as top5
FROM Hund
Tänk på att top är lite lurig då den utgår från unika värden utifrån order by.
Så om du har samma resultat i två tävlingar upprepas dem. Du bör därför sist i Order by satsen inkluder nyckeln eler någon annan unik identifierarare för att bara få fem värden.
Annars räknas
5
5
5
5
5
4
4
4
4
3
3
3
2
2
1
Som top 5.