Avatar billede lars_hoeberg Praktikant
29. maj 2008 - 19:07 Der er 23 kommentarer og
2 løsninger

Udvælg laveste i gruppe

Hejsa.

Jeg skal bruge en forespørgsel, som udtrækker laveste værdi i feltet "Score" i hver kategori, som står i feltet "MatchID".
Altså den skal dele alle "MatchID" op og vælge den post hvor "Score" er lavest.

Håber I kan hjælpe
Avatar billede mugs Novice
29. maj 2008 - 19:14 #1
Denne finder den laveste værdi i feltet nr:'

SELECT TOP 1 Tabel1.nr
FROM Tabel1
ORDER BY Tabel1.nr;

Hvis du har flere værdier der skal findes i samme felt, mener jeg du skal bruge en Union Select.
Avatar billede lars_hoeberg Praktikant
29. maj 2008 - 19:28 #2
Jamen jeg skal have den laveste i HVER gruppe. Altså hvis der er 5 forskellige "MatchID" skal den returnere 5 poster, og det skal være de 5 poster hvor "Score" er lavest. Der kan nemlig være flere af den samme i "MacthID"
Avatar billede mugs Novice
29. maj 2008 - 19:34 #3
"Hvis du har flere værdier der skal findes i samme felt, mener jeg du skal bruge en Union Select."
Avatar billede mugs Novice
29. maj 2008 - 19:56 #4
Nu bruger jeg ikke normalt en UNION, men nogenlunde således:

SELECT top 1, sport,matchid FROM tabel1 WHERE sport= 'fodbold' order by matchid asc
UNION
SELECT top 1, sport,matchid FROM tabel1 WHERE sport= 'håndbold' order by matchid asc
UNION
SELECT top 1, sport,matchid FROM tabel1 WHERE sport= 'tennis' ORDER BY matchid asc;
Avatar billede terry Ekspert
29. maj 2008 - 20:43 #5
can we see the fields in the table and an example of what you expect to see Lar`s?
Avatar billede terry Ekspert
29. maj 2008 - 20:44 #6
Lar`s = Lars (sorry)
Avatar billede Slettet bruger
29. maj 2008 - 22:51 #7
SELECT DinTabel.MatchID, Min(DinTabel.Score) AS MinOfScore
FROM DinTabel
GROUP BY DinTabel.MatchID;
Avatar billede mugs Novice
30. maj 2008 - 06:17 #8
spg > Vil vise alle poster. Vi skal kun have een post i hver kategori.
Avatar billede jensen363 Forsker
30. maj 2008 - 11:29 #9
MUGS > vås ... SPG's SQL er korrekt ... i hvert fald i forhold til opgaveformuleringen

SELECT MinTabel.MatchID, Min(MinTabel.Score) AS MinOfScore
FROM MinTabel
GROUP BY MinTabel.MatchID;
Avatar billede mugs Novice
30. maj 2008 - 12:03 #10
Vås og vås er vel så meget igen. Jf. opgaven skal kun den laveste værdi vises, og Jeres kode viser ALLE poster.
Avatar billede jensen363 Forsker
30. maj 2008 - 13:19 #11
29/05-2008 19:28:17
Jamen jeg skal have den laveste i HVER gruppe

GROUP BY MinTabel.MatchID    sikrer at der kun vises een gruppe
Min(MinTabel.Score) AS MinOfScore    sikrer at kun mindste værdi vises pr. gruppe
Avatar billede mugs Novice
30. maj 2008 - 13:40 #12
jensen - Du må sgu meget undskylde, men den kan jeg ikke få til at fungere. Denne er afprøvet og så vidt jeg kan se, giver den svaret. Feltet sport angiver hvilken sportsgran der er tale om.

SELECT Min(Tabel1.score) AS MinOfScore, Tabel1.sport
FROM Tabel1
GROUP BY Tabel1.sport;
Avatar billede lars_hoeberg Praktikant
31. maj 2008 - 16:41 #13
Må give Mugs ret. Jeg HAR prøvet den funktion, og den viser alle posterne. Prøver lige Mugs forslag fra tidligere
Avatar billede Slettet bruger
31. maj 2008 - 19:45 #14
Jeg forstår ikke helt hvor det her går galt, for hvis man har en tabel som hedder DinTabel og der er 2 felter, nemlig MatchID og Score....

og man så fylder i tabellen:

M  S
1  3
1  2
2  2
2  5
3  4

Så vil:

SELECT DinTabel.MatchID, Min(DinTabel.Score) AS MinOfScore
FROM DinTabel
GROUP BY DinTabel.MatchID;

Give flg. resultat:

M  S
1  2
2  2
3  4

Er der nogen, som får et andet resultat?~)

og er det ikke det som spm. oprindeligt gik på?~)

Hvis resultatet skulle være anderledes, så må der være flere felter, som spøger!~)
Avatar billede lars_hoeberg Praktikant
31. maj 2008 - 19:55 #15
Ja, der er flere felter deri. Beklager det ikke indgik i min forklaring
Avatar billede lars_hoeberg Praktikant
31. maj 2008 - 20:33 #16
Der må helst ikke være definieret hvad der skal stå i felterne. Bare en funktion til at tage den post ud i hver kategori, hvor Score er lavest
Avatar billede Slettet bruger
31. maj 2008 - 23:22 #17
Det er resten af din forespørgsel, som der skal kigges på... Der er et eller flere felter, som du måske ikke engang viser, som er forskellige selvom MatchID er ens. Disse felter skal ikke være med i GROUP BY, hvis det eksempelvis er datoer, så kan du måske bruge WHERE ellers prøv at få disse felter ud af forespørgslen. Du kan også prøve at gå i egenskaber og sætte UnikkeVærdier til Ja!~)

Hvis du ikke kan få det til at spille, så er du velkommen til at sende din db til spg.eksperten@gmail.com
Avatar billede terry Ekspert
01. juni 2008 - 09:52 #18
29/05-2008 20:43:44
Might have helped understand what is wanted.
Avatar billede lars_hoeberg Praktikant
01. juni 2008 - 10:04 #19
Er der én jeg kan sende db til, så han evt kan se hele tabellen?
Avatar billede terry Ekspert
01. juni 2008 - 10:51 #20
ekspertenATsanthell.dk
AT = @
Avatar billede lars_hoeberg Praktikant
01. juni 2008 - 12:19 #21
Sendt nu :-)
Avatar billede terry Ekspert
01. juni 2008 - 14:20 #22
Min(Score) is going to give the smallest value for a group. So if there is always distinct matchID in the result then min will work, but because there are other fields in the group its unlikley that this will be the case. So you have to make a sub select to get the Min(score) for the specific MatchID.


...SELECT min([G01]) FROM tblDisciplineFinal T Where T.MatchID = tblDisciplineFinal.MatchID) AS MinGD ...
Avatar billede lars_hoeberg Praktikant
02. juni 2008 - 17:47 #23
Sendt igen med ny forespørgsel
Avatar billede mugs Novice
02. juni 2008 - 18:02 #24
Lars > Giver min SQL ikke den korrekte visning?
Avatar billede terry Ekspert
02. juni 2008 - 22:27 #25
THis is what I have now suggested, no idea if its what Lars wants.

Make a query which only contains two columns, MatchID and G01. Group on MatchID and take the smallest (Min) G01. This query should give you the lowest G01 for each matched.

Now make another query where you have the first query and also the table tblDisciplineFinal. Make a join between the query and the table on MatchID and G01.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester