webForumDet fria alternativet

TOP 5

20 svar · 810 visningar · startad av MizzK

MizzKMedlem sedan juni 2003410 inlägg
#1

Hur gör jag för att få fram top5 bästa poängen från en ensild individ..

har testa detta men tar bara fram de 5 första från den individen, inte dom 5 högsta poängen..

SELECT TOP 5 Utst_resultat.poang
FROM Utst_resultat
WHERE (((Utst_resultat.hundNr)=11));

@ndersMedlem sedan juni 200032 969 inlägg
#2

Utan ORDER BY ger inte TOP speciellt mycket.

Varför har du hundratals parenteser i din WHERE-sats?

Passar också på att peka med hela handen mot SQL-forumet.

mozillaMedlem sedan juli 20011 084 inlägg
#3

Som anders säger... kanske så här:

SELECT TOP 5 Utst_resultat.poang
FROM Utst_resultat
WHERE (((Utst_resultat.hundNr)=11)) (ORDER BY (((Utst_resultat).poang)));

:P

MizzKMedlem sedan juni 2003410 inlägg
#4

tack fungerar, men nu vill jag summera top 5 poängen för varje hund hur gör man då?

Peter SMedlem sedan dec. 20025 483 inlägg
#5
select hundnr
     , sum(poang)
  from utst_resultat u
 where poang
    in (select top 5 poang
          from utst_resultat
         where hundnr = u.hundnr
        order
            by poang desc)
group
    by hundnr
MizzKMedlem sedan juni 2003410 inlägg
#6

tack fungerar bra men går de att koppla till tabellen hund som innehåller hundnamn, hundnr och kon? dvs me en inner join? försökte men gick inte =/

Peter SMedlem sedan dec. 20025 483 inlägg
#7

Vad försökte du med?

select u.hundnr
     , h.hundnamn
     , h.kon
     , sum(u.poang)
  from utst_resultat u
inner
  join hund h
    on u.hundnr = h.hundnr
 where poang
    in (select top 5 poang
          from utst_resultat
         where hundnr = u.hundnr
        order
            by poang desc)
group
    by u.hundnr
     , h.hundnamn
     , h.kon
MizzKMedlem sedan juni 2003410 inlägg
#8

jepp men fick fel.

De är så att egenligen vill jag ha in den andre koden i denna koden.. om de går annars får jag hitta på ngt annat =D..

SELECT Sum(Utst_resultat.poang) AS p, Count(utstnr) AS antutst, Hund.hundnamn, Hund.kon
FROM Utst_resultat INNER JOIN Hund ON Utst_resultat.hundNr = Hund.hundnr
GROUP BY Hund.hundnamn, Hund.kon, Utst_resultat.hundNr
HAVING (((Sum(Utst_resultat.poang))<>0) AND ((Hund.kon)='T'))
ORDER BY Sum(Utst_resultat.poang) DESC;
Peter SMedlem sedan dec. 20025 483 inlägg
#9

Vad får du för fel då?

select u.hundnr
     , h.hundnamn
     , h.kon
     , sum(u.poang)
  from utst_resultat u
inner
  join hund h
    on u.hundnr = h.hundnr
 where h.kon = 'T'
   and poang
    in (select top 5 poang
          from utst_resultat
         where hundnr = u.hundnr
        order
            by poang desc)
group
    by u.hundnr
     , h.hundnamn
     , h.kon
MizzKMedlem sedan juni 2003410 inlägg
#10

The specified fiels 'hundnr' could refer to mor than one tabel listed in the FROM clause of your SQL statment

Peter SMedlem sedan dec. 20025 483 inlägg
#11

Då får du kvalificera de förekomster av kolumnnamn som inte är det.

MizzKMedlem sedan juni 2003410 inlägg
#12

och med de menar du? vet du hur jag kan slå ihop din sql sats med min?

Peter SMedlem sedan dec. 20025 483 inlägg
#13
select u.hundnr
     , h.hundnamn
     , h.kon
     , sum(u.poang)
  from utst_resultat u
inner
  join hund h
    on u.hundnr = h.hundnr
 where h.kon = 'T'
   and u.poang
    in (select top 5 ur.poang
          from utst_resultat ur
         where ur.hundnr = u.hundnr
        order
            by ur.poang desc)
group
    by u.hundnr
     , h.hundnamn
     , h.kon
MizzKMedlem sedan juni 2003410 inlägg
#14

Fungerar, MEN alla syns inte i resultatet av ngn anledning...

Peter SMedlem sedan dec. 20025 483 inlägg
#15

Kan du ge exempel på vad som finns i dina tabeller, samt vilket resultat du förväntar dig?

MizzKMedlem sedan juni 2003410 inlägg
#16

hittade felet, dumma jag tänkte inte på att villkorer var kon=T. Men går det att i samma sql sats även räkna ut summan av alla tävlingar? så att jag får ut ett svar med ytterligare en kolumn som innehåller själva totala poängen?

dvs detta vill jag ha!

hundnamn top5poäng totpoäng antal utst
Ture 15 45 2

tabeller hund

hundnr
hundnamn

tabell resultat

hundnr
utstnr
poang

tabell uställning

utst
ort

Peter SMedlem sedan dec. 20025 483 inlägg
#17

Då skulle det kunna se ut så här:

select u.hundnr
     , h.hundnamn
     , sum(u.poang)
     , (select sum(utr.poang)
          from utst_resultat utr
         where utr.hundnr = u.hundnr) as total
  from utst_resultat u
inner
  join hund h
    on u.hundnr = h.hundnr
 where u.poang
    in (select top 5 ur.poang
          from utst_resultat ur
         where ur.hundnr = u.hundnr
        order
            by ur.poang desc)
group
    by u.hundnr
     , h.hundnamn

Red./ Såg att du ej ville ha med vilket kön hunden har. Vill du ej heller ha med hundnumret kan du stryka det från SELECT- och GROUP BY-satserna.

MizzKMedlem sedan juni 2003410 inlägg
#18

på vissa ställen vill jag ha de och vissa inte =D.. tusen tack för hjälpen!!!

Peter SMedlem sedan dec. 20025 483 inlägg
#19

:bire

Glöm inte att acceptera som slutgiltigt det svar som löste problemet.

MizzKMedlem sedan juni 2003410 inlägg
#20

förrästen hur får jag in antalet utst? dvs utstnr som varje hundnr har?

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